Python AES-SHA1PRNG 加密解密分析
发布时间
阅读量:
阅读量
Python - AES SHA1PRNG 加密解密总结
Max.Bai
2020-11
此前的文章记录了当时对AES加密技术的探索过程,相关内容可参考 python3 - AES 加密实现java中SHA1PRNG 算法。
在收到众多读者的反馈与提问后,我认为有必要进一步整理并撰写一篇总结性的文章,同时开发了一个可以直接使用的类库。该类库中集成了ECB与CBC等加解密模式,并且也包含了SHA1PRNG算法。对于其他类型的加密方式,用户可以参照其中的代码进行扩展和实现。
加解密的整体流程如下:
0. 确定所采用的加密模式,例如ECB或CBC等。
1. 处理密钥部分,判断是否需要使用SHA1PRNG进行处理,并确认是否需要填充操作。对于CBC模式而言,密钥长度必须是16字节的整数倍;如果不符合这一要求,则需要进行填充处理或者自行定义填充方式。
2. 确认加密内容所采用的填充方式。当使用CBC模式时,被加密的内容必须为16字节的整数倍,因此通常会采用PKCS5/7、零填充等方法进行处理。
3. 判断是否需要初始化向量(IV)。只有在使用CBC模式时才需设置IV,并且IV也必须为16字节的整数倍。可以通过填充或手动设置的方式满足这一条件。
4. 确定最终输出格式,如Base64编码或十六进制字符串(hexstr)。
加密的具体步骤为:
全部评论 (0)
还没有任何评论哟~
