AES 加密算法

AES 加密算法

AES(Advanced Encryption Standard) 加密算法是一种对称加密算法算法

密钥长度

AES 加密支持的密钥长度:128, 192, 256,长度越长安全性越高,性能越差。安全

分组加密

AES 在对明文进行加密时并非把整个明文一下所有加密成一整段密文,而是把明文拆分红一个个独立的明文块,每一个明文块长度为 128 bit。这些明文块通过 AES 加密器处理后生成一个个独立的密文块,将全部密文块拼接在一块儿即是最终的 AES 加密结果。性能

填充算法

若是明文总长度不是 128 bit 的整数倍,如上图中明文块 N 的大小小于 128 bit,则须要对最后长度不足的明文块进行填充。AES 在不一样的语言实现中有不一样的填充算法,几种常见的算法包括:加密

  • PKCS5Padding:默认填充算法,若是明文块少于 16 个字节(128 bit),在明文块末尾补足相应数量的字节,且每一个字节的值等于缺乏的字节数。如:明文 {1,2,3,4,5,6,7,8,9,0} 只占用了 10 个字节,缺乏 6 个字节,则经此算法填充后变为 {1,2,3,4,5,6,7,8,9,0,6,6,6,6,6,6},填充内容所有为缺乏的字节数量。.net

  • ISO10126Padding:若是明文块少于 16 个字节(128 bit),在明文块末尾补足相应数量的字节,最后一个字节的值等于缺乏的字节数,其它字节的值使用随机数填充。如:明文 {1,2,3,4,5,6,7,8,9,0},经此算法填充后可能变为 {1,2,3,4,5,6,7,8,9,0,r,9,$,v,u,6}3d

  • NoPadding:不作任何填充,可是要求明文必须是 16 个字节(128 bit)的整数倍code

注意:AES 加解密使用的填充算法必须保持一致。blog

工做模式

  • ECB:电码本模式,Electronic Codebook Book,默认
  • CBC:密码分组连接模式,Cipher Block Chaining
  • CTR:计算器模式,Counter
  • CFB:密码反馈模式,Cipher FeedBack
  • OFB:输出反馈模式,Output FeedBack

注意:AES 加解密使用的工做模式也必须保持一致。ip

相关文章
相关标签/搜索