达川区建设局局网站,免费微信h5页面制作,深圳it外包公司有哪些,本地升级wordpress欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 hashlib模块专栏#xff1a;《python从入门到实战》 哈希算法#xff0c;也叫摘要算法。
加密… 欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 hashlib模块 专栏《python从入门到实战》 哈希算法也叫摘要算法。
加密通过加密解密算法明文和密文可以相互转换。md5、sha这里的算法只能把明文变成密文不能把密文解析成明文。
用于加密相关的操作3.x里代替了md5模块和sha模块主要提供 SHA1, SHA224, SHA256, SHA384, SHA512MD5算法。
import hashlibmhashlib.md5()# mhashlib.sha256() #使用md5算法# mhashlib.md5(‘abcd’, encode(‘utf-8’)) #加盐 – 在服务端加一些只有自己知道的信息防止撞库反解m.update(hello.encode(utf8)) #需要先把字符串变成字节通过encode方法使用utf8编码因为要把字符串变成字节必须要编码方式
print(m.hexdigest()) #5d41402abc4b2a76b9719d911017c592 # - 位数是固定的#把不定长的字符串转换成定长的密文 – 32位每个字符串对应的密文是唯一的m.update(alvin.encode(utf8)) #相当于对helloalvin加密
print(m.hexdigest()) #92a7e713c30abbb0319fa07da2a5c4afm2hashlib.md5()
m2.update(helloalvin.encode(utf8))
print(m2.hexdigest()) #92a7e713c30abbb0319fa07da2a5c4af哈希的用途如果京东淘宝在数据库中通过明文存储用户的账号密文一旦黑客攻破数据库所有用户的数据都丢失了。通过md5这种算法加密后可以得到对每个信息数据一一对应的密文把密文存在数据库中即使黑客攻破拿到密文但是这个密文加密的数据是不可逆的-md5不可反解无法翻译为明文。那么用户是怎么登录的呢用户登陆的时候会把密文的密码保存每次登录都是密文与密文对比即可 无需反解全部都是密文密文对应密文即可。 撞库反解维护一个特别大的数据库把字符串和密文的一一对应关系保存下来然后一个一个的试。 撞库的解决方法在加密时加上一些只有自己知道的信息因为撞库反解所维护的数据库只有大家都熟悉的一些字符串以及密文对应关系。对客户端从用户的角度设置复杂密码对服务端通过加盐 mhashlib.md5(‘abcd’, encode(‘utf-8’))。
以上加密算法虽然依然非常厉害但时候存在缺陷即通过撞库可以反解。所以有必要对加密算法中添加自定义key再来做加密。
import hashlib# ######## 256 ######## 算法越复杂加密耗时越久hash hashlib.sha256(898oaFs09f.encode(utf8))
hash.update(alvin.encode(utf8))
print (hash.hexdigest())#e79e68f070cdedcfe63eaf1a2e92c83b4cfb1b5c6bc452d214c1b7e77cdfd1c7python 还有一个 hmac 模块它内部对我们创建 key 和 内容 再进行处理然后再加密。
import hmac
h hmac.new(alvin.encode(utf8))
h.update(hello.encode(utf8))
print (h.hexdigest())#320df9832eab4c038b6c1d7ed73a5940