电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Python3+PyCryptodome实现各种加密算法教程 VIP免费

Python3+PyCryptodome实现各种加密算法教程 _第1页
1/5
Python3+PyCryptodome实现各种加密算法教程 _第2页
2/5
Python3+PyCryptodome实现各种加密算法教程 _第3页
3/5
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让⼈⼀下看不懂原本内容是什么“的⾓度讲你也不能说他完全不算加密,平时也经常⽤,我们就顺道讲⼀讲如何实现。2.2base64编码实现代码importbase64#编码b"123456",输出为b'MTIzNDU2'base64.b64encode(b"123456")#解码b'MTIzNDU2',输出为b"123456"base64.b64decode(b'MTIzNDU2')三、单向加密算法3.1单向加密算法说明别称:单向加密算法,⼜称哈希函数、散列函数、杂凑函数、摘要算法,英⽂名One-wayencryptionalgorithm。原理:单向加密如其名只能加密不能解密(不是正经的解密),不能解密的原因是本质上并不是⽤IV(InitialVector)去加密M输出M的密⽂,⽽是⽤M去加密IV输出IV的密⽂。⽤途:消息认证摘要、内容或⽂档的数字指纹、⼝令存储。其他:单向加密⼜可以分为hash和hmac两⼤类,hmac和hash的算法是⼀样的,其实可以认为hmac就是hash加盐的形式(不过这盐值不是hash中常⽤的拼接在最前边或拼接在最后边,具体怎么拼接的我不太确定)。⼀般来说标准库就挺好⽤时我们⼀般就直接⽤标准库,python的标准库就能容易地实现单向加密算法,所以单向加密我们使⽤标准库实现。python中hash类算法使⽤hashlib库实现,hmac类算法使⽤hmac库实现。3.2标准库⽀持的单向加密算法importhashlib#注意输出结果中各算法使⽤⼤写和⼩写写了两遍#同时也是说到后边的书写中算法名⼤写或⼩写都是可以的hashlib.algorithms_available3.3使⽤hashlib实现hash算法(以md5为例)importhashlib#实例化⽅法⼀,直接使⽤算法名;这种形式不完全⽀持hashlib.algorithms_available中的算法#m=hashlib.md5()#实例化⽅法⼆,使⽤new⽅法;所有⽀持的算法名看上边hashlib.algorithms_availablem=hashlib.new("md5")#update内是要加密的内容#update使⽤+=,即连续多次update表⽰在原先内容上追加⽽不是替换m.update(b"123456")#以⼗六进制字符串形式输出m.hexdigest()3.4使⽤hmac实现hmac算法(以sha1为例)importhmac#实例化原形是hmac.new(key,msg=None,digestmod=None)#key--加密⽤的盐值#msg--要加密码的内容,可为空⽽后⽤update⽅法设置#digestmod--加密算法,默认为md5,所有⽀持的算法名看上边hashlib.algorithms_availablem=hmac.new(b"123",digestmod="sha1")#update使⽤+=,即连续多次update表⽰在原先内容上追加⽽不是替换#但要注意所谓的+=是msg之间的+=,⽽不是key和msg之间的+=#即使⽤以下update后等于hmac.new(b"123",b"123456",digestmod="sha1"),但不等于hmac.new(b"123123456",digestmod="sha1")m.update(b"123456")#以⼗六进制字符串形式输出m.hexdigest()四、对称加密算法4.1对称加密算法说明别名:对称加密算法,⼜称密钥加密算法、单密钥算法、共享密钥算法,英⽂名SymmetricEncryptionAlgorithms。原理:对称加密算法最关键的就是SP变换,S变换通过代替操作实现混乱(即消除统计信息),P变换通过换位操作实现扩散(即雪崩效应);加解密是使⽤同⼀个密钥的逆操作过程。⽤途:对称加密可以还原内容,且代替和换位操作运算量不⼤,适⽤于⼤量内容的加解密。对称加密算法的缺点是加解密双⽅密钥分发困难。其他:对称加密算法有ECB、CBC、CFB、OFB、CTR等等多种模式,各种模式的加密...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Python3+PyCryptodome实现各种加密算法教程

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部