python中的加密操作
下面将介绍python 中常用的几种加密算法。
第一类:
-
导入 hashlib文件,这个文件中定义了md5和sha两种算法的加密方法
-
md5码编码方式
import hashlib # 01.用二进制将字符串hello world进行编码 print("hello world".encode()) # b'hello world' # 02.md5编码 # hello world用md5算法编码后,生成一个md5码的对象 test = hashlib.md5("hello world".encode()) print(test) # <md5 HASH object @ 0x0000025C6204A170>这是一个对象,@后面是对象的存储地址 # 使用hexdigest()方法将生成的对象中的编码取出来 print(test.hexdigest()) # 5eb63bbbe01eeed093cb22bb8f5acdc3 这就是hello world用md5编码的结果
-
sha系列
import hashlib # 01.sha1编码 test1 = hashlib.sha1("hello world".encode()) print(test1) # <sha1 HASH object @ 0x0000024BAFD7A170> print(test1.hexdigest()) # 运行结果:5eb63bbbe01eeed093cb22bb8f5acdc3 # 02.sha256编码 test2 = hashlib.sha256("hello world".encode()) print(test2) # <sha256 HASH object @ 0x000001677B37AA30> print(test2.hexdigest()) # b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 # 03.sha224编码 test3 = hashlib.sha224("hello world".encode()) print(test3) # <sha224 HASH object @ 0x00000246CAC5A170> print(test3.hexdigest()) # 2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b # 04.sha384编码 test4 = hashlib.sha384("hello world".encode()) print(test4) # <sha384 HASH object @ 0x00000264A1FCA170> print(test4.hexdigest()) # 运行结果:fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
注意:md5 和 sha系列的加密 都是不可逆的,也就是说这两个系列的加密算法,只能加密,不能解密,是单项加密。
-
hmac 加密 和给md5码加密比较类似
import hmac res = hmac.new("haha".encode(), "zhangsan".encode()) print(res.hexdigest())
案例: md5加盐加密
import hashlib import random # 编写一个加盐的方法 def jiayan(): # 随机从1-10000获取一个数 res = random.randint(1, 10000) # 直接将随机数res使用md5编码的结果 # print(hashlib.md5(str(res).encode("utf-8")).hexdigest()) # 将随机数res转为字符串并且拼接一个字符串的编码返回 return (str(res)+"hahaha").encode("utf-8") # 调用加盐方法,并将返回的结果使用md5加密 my_res = hashlib.md5(jiayan()) # 输出打印 print(my_res) # <md5 HASH object @ 0x000001B90E236620> print(my_res.hexdigest())
版权声明:本文为weixin_53501217原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。