普通的 md5 算法

from hashlib import md5  

s = "123456"  

mds = md5(s.encode("utf-8"))  
print(mds.hexdigest())

普通的 md5 容易被 撞库:意思就是说,有一个很大的数据库,里面存储大量(字符串,md5)的 kv 对,这样只要一条 SQL 就可以找到当前需要还原的 md5。

那么如何保证自己的 md5 不会被撞库呢,就是给 md5 进行加盐操作。

加盐的 md5 算法

s = "123456"  
salt = "f;slaf;aifas;fowfuwa9eiw9fo;jsfjsdlhf;aijf;oaj;jlf;ajl;fjl;ijgiougoi;ergioh94028509250928520ijf;jgf;oirrg;"  

s += salt  

mds = md5(s.encode("utf-8"))  
print(mds.hexdigest())

验签,验证 md5 是否一致

key = "c24f591fd794e9dc3049e3db25969b49"  
s = "123456"  
salt = "f;slaf;aifas;fowfuwa9eiw9fo;jsfjsdlhf;aijf;oaj;jlf;ajl;fjl;ijgiougoi;ergioh94028509250928520ijf;jgf;oirrg;"  

s += salt  

mds = md5(s.encode("utf-8"))  

if mds.hexdigest() == key:  
    print("True")  
else:  
    print("False")