如何选择AES加密模式(CBC、ECB、CTR、OCB、CFB)
如果加密的数据块超过 1 block则不要选择ECB模式
<Excerpt in index | 首页摘要>
<The rest of contents | 余下全文>
如果加密的数据块超过 1 block则不要选择ECB模式
CBC, OFB 和 CFB 模式很相似,然而如果你只是要加密而不需要解密,则选择OFB或CFB更合适,因为这两种模式可以节约空间
如果需要更快的加密速度(并行加密),选择CTR 而不是 CBC/OFB/CFB.
如果需要 对随机访问介质内的数据(如磁盘或内存中的数据)进行加密,选择XTS模式更合适
OCB是目前为止最好的模式,因为它可以一次性对数据进行加密和验证,然后在美国该模式是需要专利授权的
ECB 很少使用到除非只是加密1个数据块.如果是加密磁盘或内存的数据而不是stream(stream是一段一段的),XTS应该更适合你
每次加密时都要使用唯一且随机的IV(init vector,初始化向量),如果你无法保证随机性,则使用OCB模式,因为它只需要传入nonce而无需传入IV,IV和nonce这两个有点不同,如果被人猜到下一个nonce是不会导致安全问题,而被人猜到下一个IV则会导致安全问题(因为需要保证IV每次是随机的)