绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
AES 加密算法
2020-04-30 17:45:16

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},填充內容全部爲缺少的字節數量。
  • 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}
  • NoPadding:不做任何填充,但是要求明文必須是 16 個字節(128 bit)的整數倍

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

工作模式

  • ECB:電碼本模式,Electronic Codebook Book,默認
  • CBC:密碼分組鏈接模式,Cipher Block Chaining
  • CTR:計算器模式,Counter
  • CFB:密碼反饋模式,Cipher FeedBack
  • OFB:輸出反饋模式,Output FeedBack

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

分享好友

分享这个小栈给你的朋友们,一起进步吧。

斯是陋室惟吾德馨
创建时间:2020-06-29 14:46:51
山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • zuike2000
    栈主

小栈成员

查看更多
  • AI中国
  • Adiao520
戳我,来吐槽~