http://coolshell.cn/articles/3161.html
http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html
AES
Advanced Encryption Standard,又称Rijndael加密法,是一种对称加密算法。
AES算法密钥长度可以是128比特、192比特、256比特。
- 对称加密,简单来说就是加密、解密使用同一个密钥,经过一个可逆的算法对数据加、解密。
AES是基于分组加密的,分组加密是:
- 选取固定长度的密钥,以密钥长度为单位对明文数据进行分组;(不够做数据补齐)
- 使用密钥对每个分组的数据进行加密;加密算法以密钥、明文分组为输入,以密文组为输出;
- 生成的密文与明文块长度一样;所有密文组并在一起,就是最终输出的密文。
以AES 128位密钥为例:以128 bit为一组进行加密,就是每次加密16个字节,因此每次输入16个字节的明文输出16个字节密文;如果明文是32个字节,那么分成两组依次进行加密。
AES算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。