,也分别为128比特,192比特和256比特,并分别被称为AES-128,AES-192,AES-256。
AES和传统的分组密码算法不同的是它不采用Feistel结构(比如DES中采用的),而是采用了三个不同的可逆一致变换层:线性混合层、非线性层、密钥加层。具体的算法数学基础和过程请祥见: AES算法的识别、跟巧及Crackme实例分析
1 AES算法的判断识别
AES中有自S盒与逆S盒,可以将此作为判别标志,比如:S盒开头为:
637C777BF26B6FC53001672BFEDB76CA82C97DFA5947F0.....
解密过程使用的盒开头为:
52096AD53036A538BF40A39E81F3D7FB7CE339829B2FFF87
解密内容 :1243CFEBD819AA6B1C717DE870459F7B
秘钥 :
没有使用填充向量iv
AES解密异常Given final block not properly padded
原因: 解密的时候直接对输入的16进制值 1243CFEBD819AA6B1C717DE870459F7B 取getBytes了, 这样获取到的字节数组长度是16,不能直接这样操作 。
需要将16进制转字节数组,这样获取到的内容是32位,而且和之前直接获取到的字节数组不一样。
16进制转字节数组方法
这样解密之后的字符串是 在线助手 正常!!
还有一种情况是输入的字符串不正常不能解密!
算法破解就是找到加密算法的漏洞,进行技巧性的破解。
暴力破解是在知道加密算的情况下,用各种密码去测试。关于暴力破解也不是真正的暴力,有很多技术巧。如有效的密码字典就是一例。
AES目前没有算法浮出水面。
AES暴力破解与密码强度(如字串的MD5值就难,简单字串在密码字典排序告前,相对容易一些)和计算能力有关。但AES密钥长度太长,各种排列组合简直是天文数字,现有能力民间单机不可能破解。当然也可能一买彩票就中大奖,但似乎比那概率小得多。