内部快照和外部快照的优缺点(内部快照和外部快照的优缺点有哪些)
大家好!今天让创意岭的小编来大家介绍下关于内部快照和外部快照的优缺点的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、监控1t硬盘怎么分快照盘和读写盘?
DIY装机指的是自行选择电脑的各个硬件,这些硬件包括处理器、主板、内存、显卡、硬盘、机箱、电源等,在保证兼容、合理搭配的同时将所有的DIY硬件搭配组装为一台完整的电脑,也是所谓的“组装机”、“兼容机”,今天小编再来帮大家科普一下硬盘选购知识和硬盘知识,教你如何挑选合适的硬盘。
硬盘分为固态硬盘和机械硬盘以及混合硬盘三个类型,而绝大数的用户都是采用固态硬盘和机械硬盘双硬盘方案,现在混合硬盘市场需要很小,市场上装机常见主要是固态硬盘和机械硬盘,我们先来简单介绍一下这三个类型的硬盘知识吧。
一、硬盘 选购 的类型:
1、机械硬盘(HDD)
是一款传统式硬盘,在没有固态硬盘之前都是搭配的机械硬盘,现在装机搭配机械硬盘多数作为储存副盘。机械硬盘的结构主要是由一个或者多个铝制或者玻璃制成的磁性碟片、磁头、转轴、磁头控制器、控制电机、数据转换器、接口以及缓存等几个部分组成。在机械硬盘在工作的时候,磁头悬浮在高速旋转的磁性碟片上进行读写数据。
优点主要是容量大,价格便宜,技术成熟,硬盘破坏可做数据恢复,而缺点主要是速度相比固态硬盘要慢,发热大,噪音大,防震抗摔性差。
2、固态硬盘(SSD)
固态硬盘是在机械硬盘之后推出的一款新型硬盘,也是现在装机首选硬盘之一,都是设为主盘运用,大大提升系统速度。固态硬盘主要是由多个闪存芯片加主控以及缓存组成的阵列式储存,属于以固态电子储存芯片阵列制成的一种硬盘。
优点主要是相比机械硬盘,读取速度更快,寻道时间更小,能够提升系统、软件、游戏等读写速度,静音、防震抗摔性佳,低功耗、轻便、发热小。而缺点主要是价格偏贵、容量较小,大储存需要的时候,往往需要搭配机械硬盘来运用。
3、混合硬盘(SSHD)
混合硬盘相当于机械硬盘和固态硬盘的结合产品,采用容量较小的闪存颗粒作为储存常用文件,而磁盘才是最为重要的储存介质,而闪存仅仅是起了缓冲的作用,将更多的常用文件保存到闪存内减小寻道时间,从而提升效率。
混合硬盘优缺点主要是读写速度相比机械硬盘要快,但是速度不如固态硬盘,与机械硬盘同样,发热显著,有显著噪音,有震动。
二、硬盘 选购 的品牌
1、机械硬盘:西部数据(WD)、希捷(ST)
2、固态硬盘:三星、Intel、浦科特、Toshiba、建兴、闪迪、金士顿、威刚、WD、影驰、七彩虹、台电等。
一般来说,首选三星、intel、浦科特,不过价格偏贵,其次金士顿、闪迪、Toshiba等,性价比品牌可以影驰、威刚、台电、七彩虹等。
三、硬盘 选购 的容量
同价位情况下,机械硬盘的容量要比固态硬盘要大很多,因此大储存的情况下,必须搭配机械硬盘作为储存运用,除非你是土豪,直接购买大容量的固态硬盘。
固态硬盘容量通常:120G、240G、320G、500G、1T、2T或者以上等。不过现在基本都是选用120G、240G容量为主,因为大容量的固态硬盘价格绝对让你怀疑人生,不过相信经过固态硬盘多年的发展,大容量会越来越主流,越来越便宜。
机械硬盘容量通常:1T、2T、3T、4T或者以上等。一般基本都是选用1T、2T机械硬盘,再大的基本用不到,除非真有这样的储存需要。
四、硬盘 选购 的接口
机械硬盘现在都是SATA3接口,而固态硬盘常见的有:SATA 3接口,PCI-E接口,M.2接口,其中M.2之间也有不一样的规格,主要由2242、2260、2280三种规格。
SATA3接口的固态硬盘是现在运用广泛的,而M.2接口固态硬盘慢慢主流起来,而PCI-E接口一般运用在高端机上,拥有更高的速度体验。
五、硬盘 选购 的尺寸
台式电脑机械硬盘都是3.5英寸,而SATA3接口的固态硬盘是2.5寸的,与笔记本的机械硬盘尺寸相似,因此也可以运用在笔记本上。PCI-E接口的固态硬盘只适于台式电脑,并不合适笔记本,而M.2和SATA的固态硬盘,台式电脑和笔记本都是通用的。
不过对于现在的笔记本和台式电脑来说,M.2接口的固态硬盘外形小巧,打破了SATA接口带来的性能瓶颈,因此装机之家小编坚信,M.2接口的固态硬盘才是未来趋势。
是什么决定了固态硬盘和机械硬盘速度?
固态硬盘主要是颗粒与主控, 固态的颗粒与主控好坏决定了一款固态硬盘的性能,颗粒与主控越好,无疑固态硬盘的速度越强。
SSD的颗粒的传统分类:SLC、MLC、TLC,SLC颗粒要强于MLC,而MLC颗粒又强于TLC,不过SLC颗粒在现在市场基本很少,(装机之家原创)主要是价格偏贵,现在中高端的固态还是MLC颗粒的天下,而TLC颗粒成本较低,性能与寿命不如MLC,定位市场入门级固态硬盘。
SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万次擦写寿命。
MLC = Multi-Level Cell,即2bit/cell,速度一般寿命一般,价格一般,约1000--3000次擦写寿命。
TLC = Trinary-Level Cell,即3bit/cell,也有Flash厂家叫8LC,速度慢寿命短,价格便宜,约1000次擦写寿命。
主流主控品牌:群联、Marvell、三星、台系主控(常见的台系主控包括慧荣Silicon Motion和智微Jmicron以及群联Phison三家公司,现在相当多的固态硬盘厂家都在用这三家的主控,主要是因为成本低廉相当受各大固态厂家喜爱。)等,而这类主控品牌中,主控芯片又有众多型号,不一样型号性能也有很大不一样,小编就不一一介绍。
机械硬盘影响磁盘速度的主要原因还是缓存的大小 ,缓存越大磁头读写命中率越高,速度也就越快。 此外转速快的比转速慢的读写速度要快点 ,但是机械硬盘在高转速的同时会带来温升快、温度高、磨损快,因此会更加容易破坏硬盘,建议转速容量相同的磁盘宜选择缓存大获选低转速高缓存的,此外还有硬盘的单碟容量(单碟容量越大性能越高)、接口对性能也有影响。
硬盘 选购 的搭配建议:
如今装机基本都是首选固态硬盘了,在储存空间足够运用的情况下,建议单独搭配固态硬盘,但是如果对储存要求较高的情况下,比如游戏众多,平时有存小电影的习惯,还有一些是行业需要,那么建议固态+机械双硬盘方案,固态设为主盘,而机械设为副盘,双剑合璧,既满足速度又满足储存需要。
二、Redis 和 Memcached 各有什么优缺点,主要的应用场景是什么样的
Redis 和 Memcache 都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务;Redis是一个开源的key-value存储系统。与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串、哈希 表、链表、等数据类型的相关操作。下面我们来进行来看一下redis和memcached的区别。权威比较
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:
Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
具体为什么会出现上面的结论,以下为收集到的资料:
1、数据类型支持不同
与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多。最为常用的数据类型主要由五种:String、Hash、List、Set和Sorted Set。Redis内部使用一个redisObject对象来表示所有的key和value。redisObject最主要的信息如图所示:
type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:”123″ “456”这样的字符串。只有打开了Redis的虚拟内存功能,vm字段字段才会真正的分配内存,该功能默认是关闭状态的。
1)String
常用命令:set/get/decr/incr/mget等;
应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类;
实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr、decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。
2)Hash
常用命令:hget/hset/hgetall等
应用场景:我们要存储一个用户信息对象数据,其中包括用户ID、用户姓名、年龄和生日,通过用户ID我们希望获取该用户的姓名或者年龄或者生日;
实现方式:Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口。如图所示,Key是用户ID, value是一个Map。这个Map的key是成员的属性名,value是属性值。这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field), 也就是通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据。当前HashMap的实现有两种方式:当HashMap的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,这时对应的value的redisObject的encoding为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。
3)List
常用命令:lpush/rpush/lpop/rpop/lrange等;
应用场景:Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如twitter的关注列表,粉丝列表等都可以用Redis的list结构来实现;
实现方式:Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。
4)Set
常用命令:sadd/spop/smembers/sunion等;
应用场景:Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的;
实现方式:set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。
5)Sorted Set
常用命令:zadd/zrange/zrem/zcard等;
应用场景:Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。
实现方式:Redis sorted set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单。
2、内存管理机制不同
在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcached相比一个最大的区别。当物理内存用完时,Redis可以将一些很久没用到的value交换到磁盘。Redis只会缓存所有的key的信息,如果Redis发现内存的使用量超过了某一个阀值,将触发swap的操作,Redis根据“swappability = age*log(size_in_memory)”计算出哪些key对应的value需要swap到磁盘。然后再将这些key对应的value持久化到磁盘中,同时在内存中清除。这种特性使得Redis可以保持超过其机器本身内存大小的数据。当然,机器本身的内存必须要能够保持所有的key,毕竟这些数据是不会进行swap操作的。同时由于Redis将内存中的数据swap到磁盘中的时候,提供服务的主线程和进行swap操作的子线程会共享这部分内存,所以如果更新需要swap的数据,Redis将阻塞这个操作,直到子线程完成swap操作后才可以进行修改。当从Redis中读取数据的时候,如果读取的key对应的value不在内存中,那么Redis就需要从swap文件中加载相应数据,然后再返回给请求方。 这里就存在一个I/O线程池的问题。在默认的情况下,Redis会出现阻塞,即完成所有的swap文件加载后才会相应。这种策略在客户端的数量较小,进行批量操作的时候比较合适。但是如果将Redis应用在一个大型的网站应用程序中,这显然是无法满足大并发的情况的。所以Redis运行我们设置I/O线程池的大小,对需要从swap文件中加载相应数据的读取请求进行并发操作,减少阻塞的时间。
对于像Redis和Memcached这种基于内存的数据库系统来说,内存管理的效率高低是影响系统性能的关键因素。传统C语言中的malloc/free函数是最常用的分配和释放内存的方法,但是这种方法存在着很大的缺陷:首先,对于开发人员来说不匹配的malloc和free容易造成内存泄露;其次频繁调用会造成大量内存碎片无法回收重新利用,降低内存利用率;最后作为系统调用,其系统开销远远大于一般函数调用。所以,为了提高内存的管理效率,高效的内存管理方案都不会直接使用malloc/free调用。Redis和Memcached均使用了自身设计的内存管理机制,但是实现方法存在很大的差异,下面将会对两者的内存管理机制分别进行介绍。
Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录,以完全解决内存碎片问题。Slab Allocation机制只为存储外部数据而设计,也就是说所有的key-value数据都存储在Slab Allocation系统里,而Memcached的其它内存请求则通过普通的malloc/free来申请,因为这些请求的数量和频率决定了它们不会对整个系统的性能造成影响Slab Allocation的原理相当简单。 如图所示,它首先从操作系统申请一大块内存,并将其分割成各种尺寸的块Chunk,并把尺寸相同的块分成组Slab Class。其中,Chunk就是用来存储key-value数据的最小单位。每个Slab Class的大小,可以在Memcached启动的时候通过制定Growth Factor来控制。假定图中Growth Factor的取值为1.25,如果第一组Chunk的大小为88个字节,第二组Chunk的大小就为112个字节,依此类推。
当Memcached接收到客户端发送过来的数据时首先会根据收到数据的大小选择一个最合适的Slab Class,然后通过查询Memcached保存着的该Slab Class内空闲Chunk的列表就可以找到一个可用于存储数据的Chunk。当一条数据库过期或者丢弃时,该记录所占用的Chunk就可以回收,重新添加到空闲列表中。
从以上过程我们可以看出Memcached的内存管理制效率高,而且不会造成内存碎片,但是它最大的缺点就是会导致空间浪费。因为每个Chunk都分配了特定长度的内存空间,所以变长数据无法充分利用这些空间。如图 所示,将100个字节的数据缓存到128个字节的Chunk中,剩余的28个字节就浪费掉了。
Redis的内存管理主要通过源码中zmalloc.h和zmalloc.c两个文件来实现的。Redis为了方便内存的管理,在分配一块内存之后,会将这块内存的大小存入内存块的头部。如图所示,real_ptr是redis调用malloc后返回的指针。redis将内存块的大小size存入头部,size所占据的内存大小是已知的,为size_t类型的长度,然后返回ret_ptr。当需要释放内存的时候,ret_ptr被传给内存管理程序。通过ret_ptr,程序可以很容易的算出real_ptr的值,然后将real_ptr传给free释放内存。
Redis通过定义一个数组来记录所有的内存分配情况,这个数组的长度为ZMALLOC_MAX_ALLOC_STAT。数组的每一个元素代表当前程序所分配的内存块的个数,且内存块的大小为该元素的下标。在源码中,这个数组为zmalloc_allocations。zmalloc_allocations[16]代表已经分配的长度为16bytes的内存块的个数。zmalloc.c中有一个静态变量used_memory用来记录当前分配的内存总大小。所以,总的来看,Redis采用的是包装的mallc/free,相较于Memcached的内存管理方法来说,要简单很多。
3、数据持久化支持
Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志。而memcached是不支持数据持久化操作的。
1)RDB快照
Redis支持将当前数据的快照存成一个数据文件的持久化机制,即RDB快照。但是一个持续写入的数据库如何生成快照呢?Redis借助了fork命令的copy on write机制。在生成快照时,将当前进程fork出一个子进程,然后在子进程中循环所有的数据,将数据写成为RDB文件。我们可以通过Redis的save指令来配置RDB快照生成的时机,比如配置10分钟就生成快照,也可以配置有1000次写入就生成快照,也可以多个规则一起实施。这些规则的定义就在Redis的配置文件中,你也可以通过Redis的CONFIG SET命令在Redis运行时设置规则,不需要重启Redis。
Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的,当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件,这样在任何时候出现故障,Redis的RDB文件都总是可用的。同时,Redis的RDB文件也是Redis主从同步内部实现中的一环。RDB有他的不足,就是一旦数据库出现问题,那么我们的RDB文件中保存的数据并不是全新的,从上次RDB文件生成到Redis停机这段时间的数据全部丢掉了。在某些业务下,这是可以忍受的。
2)AOF日志
AOF日志的全称是append only file,它是一个追加写入的日志文件。与一般数据库的binlog不同的是,AOF文件是可识别的纯文本,它的内容就是一个个的Redis标准命令。只有那些会导致数据发生修改的命令才会追加到AOF文件。每一条修改数据的命令都生成一条日志,AOF文件会越来越大,所以Redis又提供了一个功能,叫做AOF rewrite。其功能就是重新生成一份AOF文件,新的AOF文件中一条记录的操作只会有一次,而不像一份老文件那样,可能记录了对同一个值的多次操作。其生成过程和RDB类似,也是fork一个进程,直接遍历数据,写入新的AOF临时文件。在写入新文件的过程中,所有的写操作日志还是会写到原来老的AOF文件中,同时还会记录在内存缓冲区中。当重完操作完成后,会将所有缓冲区中的日志一次性写入到临时文件中。然后调用原子性的rename命令用新的AOF文件取代老的AOF文件。
AOF是一个写文件操作,其目的是将操作日志写到磁盘上,所以它也同样会遇到我们上面说的写操作的流程。在Redis中对AOF调用write写入后,通过appendfsync选项来控制调用fsync将其写到磁盘上的时间,下面appendfsync的三个设置项,安全强度逐渐变强。
appendfsync no 当设置appendfsync为no的时候,Redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上。
appendfsync everysec 当设置appendfsync为everysec的时候,Redis会默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘。但是当这一次的fsync调用时长超过1秒时。Redis会采取延迟fsync的策略,再等一秒钟。也就是在两秒后再进行fsync,这一次的fsync就不管会执行多长时间都会进行。这时候由于在fsync时文件描述符会被阻塞,所以当前的写操作就会阻塞。所以结论就是,在绝大多数情况下,Redis会每隔一秒进行一次fsync。在最坏的情况下,两秒钟会进行一次fsync操作。这一操作在大多数数据库系统中被称为group commit,就是组合多次写操作的数据,一次性将日志写到磁盘。
appednfsync always 当设置appendfsync为always时,每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,所以其性能也会受到影响。
对于一般性的业务需求,建议使用RDB的方式进行持久化,原因是RDB的开销并相比AOF日志要低很多,对于那些无法忍数据丢失的应用,建议使用AOF日志。
4、集群管理的不同
Memcached是全内存的数据缓冲系统,Redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。作为基于内存的存储系统来说,机器物理内存的大小就是系统能够容纳的最大数据量。如果需要处理的数据量超过了单台机器的物理内存大小,就需要构建分布式集群来扩展存储能力。
Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法来实现Memcached的分布式存储。下图给出了Memcached的分布式存储实现架构。当客户端向Memcached集群发送数据之前,首先会通过内置的分布式算法计算出该条数据的目标节点,然后数据会直接发送到该节点上存储。但客户端查询数据时,同样要计算出查询数据所在的节点,然后直接向该节点发送查询请求以获取数据。
相较于Memcached只能采用客户端实现分布式存储,Redis更偏向于在服务器端构建分布式存储。最新版本的Redis已经支持了分布式存储功能。Redis Cluster是一个实现了分布式且允许单点故障的Redis高级版本,它没有中心节点,具有线性可伸缩的功能。下图给出Redis Cluster的分布式存储架构,其中节点与节点之间通过二进制协议进行通信,节点与客户端之间通过ascii协议进行通信。在数据的放置策略上,Redis Cluster将整个key的数值域分成4096个哈希槽,每个节点上可以存储一个或多个哈希槽,也就是说当前Redis Cluster支持的最大节点数就是4096。Redis Cluster使用的分布式算法也很简单:crc16( key ) % HASH_SLOTS_NUMBER。
为了保证单点故障下的数据可用性,Redis Cluster引入了Master节点和Slave节点。在Redis Cluster中,每个Master节点都会有对应的两个用于冗余的Slave节点。这样在整个集群中,任意两个节点的宕机都不会导致数据的不可用。当Master节点退出后,集群会自动选择一个Slave节点成为新的Master节点。
发布于 2017-02-09
241 条评论
分享
收藏感谢收起
张光宇
none
10 人赞同了该回答
先说Redis的特点
Redis 有各种丰富的数据结构,如果和业务对口,用起来会非常方便(比如Timeline, JobQueue等场合)。
Redis支持数据持久化,虽然无法像数据库那样完善,但对于互联网这种场景,完全够用了。
Memcached的特点
纯粹的cache,意思是一般只会expire cache而不会修改(或append)cache。区别就在于,你fetch的时候总会考虑cache missing的情况。
作为cache时,关于性能比较
两者都经过了良好的设计,在0~300个client的并发GET/SET下,throughput 都在保持在10万/秒以上。
memcached的性能比redis要好很多(数倍),这也比较容易理解。但往往瓶颈会在client或者网络等地方。
这里是benchmark
三、百度快照有什么用?
百度快照是保存在百度数据库中的一个某个时间的备份
四、DES和AES算法的比较各自优缺点
DES与AES的比较研究
聂定远;李小俊
讨论了目前主要的一些数据加密算法、DES算法及高级加密标准(AES)的Rijndael算法。
比较了DES、AES对称密码算法,得出AES具有比DES更好的安全性、效率、灵活性的结论。
【作者单位】:中国地质大学信息工程学院 湖北武汉430074
【关键词】:密码算法;数据加密;DES;AES
【分类号】:TN918.1
【DOI】:CNKI:ISSN:1672-7800.0.2007-05-012
【正文快照】:
1DES算法介绍DES算法具有对称性,既可以用于加密又可以用于解密。
对称性带来的一个很大的好处在于硬件实现,DES的加密和解密可以用完全相同的硬件来实现。
DES算法的明文分组是64位,输出密文也是64位。
所以密钥的有效位数是56位,加上校验位共64位。
总体流程如表1所示:输入的64位明文,先经初始IP变换,形成64位数据,64位数据被分为两部分,分别是L部分和R部分;L和R经过16次迭代,形成新的64位;新的64位数据再经初始逆变换,输出64位密文。
初始置换和逆初始置换是简单的移位操作。
在迭代过程这一步骤,替代是在密钥控制下进行的,而移位是按…
推荐 CAJ下载 PDF下载
以上就是关于内部快照和外部快照的优缺点相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: