
以下概念是百度百科:
消息摘要算法MD5(中文名称为消息摘要算法第五版)是一种散列函数,广泛用于计算机安全领域,以提供消息完整性保护. 该算法的文件号为RFC 1321(R. Rivestpython md5加密解密,麻省理工学院计算机科学实验室和RSA Data Security Inc.,1992年4月).

MD5是消息摘要算法5(消息摘要算法5),用于确保完整和一致的信息传输. 它是计算机广泛使用的哈希算法之一(也是翻译摘要算法,哈希算法),而主流编程语言通常已在MD5中实现. 将数据(例如汉字)计算为另一个固定长度的值是哈希算法的基本原理. MD5的前身是MD2,MD3和MD4.
MD5的作用是允许在使用数字签名软件签名私钥之前将大容量信息“压缩”为机密格式(即将任意长度的字节字符串转换为一定长度的十六进制). 数字字符串). 除了MD5以外,sha-1,RIPEMD和Haval更著名.

# 由于MD5模块在python3中被移除
# 在python3中使用hashlib模块进行md5操作
import hashlib
# 待加密信息
str = '123456'
# 创建md5对象
hl = hashlib.md5()
#更新hash对象的值,如果不使用update方法也可以直接md5构造函数内填写
#md5_obj=hashlib.md5("123456".encode("utf-8")) 效果一样
hl.update(str.encode("utf-8"))
print('MD5加密前为 :' + str)
print('MD5加密后为 :' + hl.hexdigest())
在大多数应用程序中,我们将使用MD5加密密码. MD5之前的最大观点之一是不可逆的,但是来自山东的中国数学家王小云提出了一种可以成功破解2004年Crypto密码的MD5算法.

也有一些提供MD5加密和解密过程的网站,但是这些网站都是通过蛮力方法实现的
那么,如果MD5损坏了,有什么好办法解决这个问题吗?

第一个是双重MD5加密
第二个是MD5盐值(SALT)
md5_obj=hashlib.md5("123456".encode("utf-8"))
str1=md5_obj.hexdigest() #加密1次
obj2=hashlib.md5(str1.encode("utf-8"))
str2=obj2.hexdigest()#加密2次
print(str2) #双重加密后,同样解密开
如前所述,无论是通过王小云的讲话破解MD5还是对主要网站进行暴力破解,都有必要再次提高MD5的安全性. 所谓的加盐就是添加一些辅助调味料,这里称为盐值.
例如,对于栗子python md5加密解密,用户注册的密码不得以纯文本格式存储. 当然,不会有CSDN这样的东西. 密码加密曾经是纯MD5. 现在我们需要向MD5添加一些香料. 问题在于最终的MD5是不可逆的. 注册用户后如何第二次登录?
存储后,需要在表中添加一个Salt字段以存储添加的调味料. 当用户登录时,输入用户注册密码+ Salt字段,然后执行MD5,然后使用加密的内容与中存储的MD5密码匹配. 如果成功,则提示成功,如果失败,则登录失败.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-252666-1.html