hashlib模块
import hashlib #加密的密码不可逆,解不了码 #md5 算法 # md5=hashlib.md5() # md5.update(b'123456') #b 表示字节 # ret=md5.hexdigest() # print(ret) #32位的加密字符串 e10adc3949ba59abbe56e057f20f883e #sha 算法 # sha1=hashlib.sha1() # sha1.update(b'123456') # ret=sha1.hexdigest() # print(ret) #40位加密字符串 7c4a8d09ca3762af61e59520943dc26494f8941b # sha512=hashlib.sha512() # sha512.update(b'123456') # ret=sha512.hexdigest() # print(ret)
#需要加盐 # md5=hashlib.md5('只有我知道的秘密'.encode('utf-8')) #转字节 # md5.update(b'123456') # ret=md5.hexdigest() # print(ret) #动态加盐 非常超级安全 #每个用户名是唯一的 # user='2609768411' # msg='只有我知道的密码%s'%user # # md5=hashlib.md5(msg.encode('utf-8')) # md5.update(b'123456') # ret=md5.hexdigest() # print(ret) # md5=hashlib.md5() # md5.update('棒真棒非常棒'.encode('utf-8')) # ret5=md5.hexdigest() # print(ret5) #上下密文一样 90c7f38c670fa6de4374ac6f9ac99afb # md6=hashlib.md5() # md6.update('棒'.encode('utf-8')) # md6.update('真棒'.encode('utf-8')) # md6.update('非常棒'.encode('utf-8')) # ret6=md6.hexdigest() # print(ret6)
#练习 #对比两个文件是否一致 # f1=open('print.txt',encoding='utf-8') # md5=hashlib.md5() # md5.update(f1.read().encode('utf-8')) # ret5=md5.hexdigest() # print(ret5) # # f2=open('print_copy.txt',encoding='utf-8') # md6=hashlib.md5() # md6.update(f2.read().encode('utf-8')) # ret6=md6.hexdigest() # print(ret6) # print(ret5 == ret6) # 方法2 def func(file_path): md5=hashlib.md5() with open(file_path,'rb')as f: content=f.read() md5.update(content) ret=md5.hexdigest() return ret ret1=func('print.txt') ret2=func('print_copy.txt') print(ret1) print(ret2) print(ret1==ret2)