龙空技术网

python中的密码加密(以md5为例)

豁达敷衍 366

前言:

此时姐妹们对“没有实现对文件的md5加密算法”大概比较关注,姐妹们都需要知道一些“没有实现对文件的md5加密算法”的相关知识。那么小编在网络上收集了一些关于“没有实现对文件的md5加密算法””的相关文章,希望同学们能喜欢,咱们快快来了解一下吧!

要完全防止信息泄露是非常困难的事情,除了防止黑客外,还要防止内部人员泄密。但如果采用合适的算法去加密用户密码,即使信息泄露出去,黑客也无法还原出原始的密码(或者还原的代价非常大)。也就是说我们可以将工作重点从防止泄露转换到防止黑客还原出数据。基于上面所说,很多前辈大牛门创造出了很多的加密算法,比如MD5、SHA1。。。

一个Demo,认识MD5使用方法:

import hashlib# 生成一个md5对象md5_obj=hashlib.md5()  # m=hashlib.sha256()# 使用update来加密明文md5_obj.update('hello'.encode('utf8'))# md5_obj调用内置hexdigest(),生成加密后的结果:5d41402abc4b2a76b9719d911017c592print(md5_obj.hexdigest())  # 还可以继续只用update(),两次加密后的内容等于update("helloworld")md5_obj.update('world'.encode('utf8'))print(md5_obj.hexdigest())  md5_obj2=hashlib.md5()md5_obj2.update('helloworld'.encode('utf8'))# 打印判断两次加密的结果:Trueprint(md5_obj2==md5_obj)'''注意:把一段很长的数据update多次,与一次update这段长数据,得到的结果一样所以update多次为校验大文件提供了可能。'''

基于Demo中MD5对象可以多次update(),我们可以使用“密码加盐”的方法提高密码的破解难度。

password = "helloworld"def password_md5(password):    md5_obj = hashlib.md5()    md5_obj.update(password.encode('utf-8'))    # 密码加盐    salt = "一二三四五,上山打老虎"    md5_obj.update(salt.encode('utf-8'))    md5_obj.hexdigest()"""注意:使用“密码加盐”后,在进行验证密码时也一定要在用户输入的password基础上进行加盐处理"""

MD5算法加密是使用较多的加密方法,加上加盐处理,能应付绝大多数的应用场景。

标签: #没有实现对文件的md5加密算法