Python3+PyCryptodome实现各种加密算法教程⼀、说明PyCryptodome是python⼀个强⼤的加密算法库,可以实现常见的单向加密、对称加密、⾮对称加密和流加密算法
直接pip安装即可:pipinstallpycryptodome⼆、Base64编码2
1base64编码说明原理:将要编码的内容按3字节为⼀组进⾏分组,最后⼀组不够3位的则补0(显然最多补两个0)每组中每字节最⾼2位改成0不使⽤,原先各位的内容保持原有顺序往后移;最后在上⼀步中补了⼏个0就加⼏个等号以供解码时按等号个数删除0(经此操作原先3节字就变成了只使⽤低6位的4字节)⽤途:⼀是SMTP中要以BASE64形式传输⼆进制⽂件,⼆是常⽤于将⼆进制数据转成可打印的ASCII码字符进⾏存储(下⽂各加密算法的密钥⼀般使⽤⼗六进制字符串形式存储,但也有以base64形式存储)
其他:本质上讲Base64只能算是⼀种编码不能算是⼀种加密算法,PyCryptodome库也不⽀持
但从”Base64让⼈⼀下看不懂原本内容是什么“的⾓度讲你也不能说他完全不算加密,平时也经常⽤,我们就顺道讲⼀讲如何实现
2base64编码实现代码importbase64#编码b"123456",输出为b'MTIzNDU2'base64
b64encode(b"123456")#解码b'MTIzNDU2',输出为b"123456"base64
b64decode(b'MTIzNDU2')三、单向加密算法3
1单向加密算法说明别称:单向加密算法,⼜称哈希函数、散列函数、杂凑函数、摘要算法,英⽂名One-wayencryptionalgorithm
原理:单向加密如其名只能加密不能解密(不是正经的解密),不能解密的原因是本质上并不是⽤IV(InitialVector