码迷,mamicode.com
首页 > 编程语言 > 详细

Python模块_hashlib模块

时间:2019-08-11 00:52:03      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:字符串   md5   iges   使用   算法   decode   code   简单   dig   

hashlib提供摘要算法,也叫哈希算法

hash和md5都是单向不可逆的,hashlib模块 主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法

 

 举个应用例子:用户密码存放数据库如果用明文记录,一旦数据库泄漏,用户密码全知道,所以要用密文记录

import hashlib
obj = hashlib.md5()
obj.update("123456".encode("utf-8"))  #假设用户输入的密码是123456
obj_result = obj.digest()
obj_result2 = obj.hexdigest()
print(obj_result) #结果是 b‘\xe1\n\xdc9I\xbaY\xab\xbeV\xe0W\xf2\x0f\x88>‘
print(obj_result2) #结果是 e10adc3949ba59abbe56e057f20f883e,一般就是以这个存放的
print(obj_result.decode("ASCII")) #报错,无法decode, bytes应该可以转回str才对
obj.update("123456".encode("utf-8"))
print(obj.hexdigest()) #这个为什么跟上面的123456的md5不一样呢, #ea48576f30be1669971699c09ad05c94,,# 因为2次update是累加的,所以字符串其实是"123456123456"

 

假设用户的确是使用了上面的简单密码,那我们要为他的密码加点‘盐‘,或者叫‘味精‘,可以利用update累加的特点处理

#思来想去,这个加盐的方法其实没用,因为‘加点盐‘是固定的,特征明显
obj.update("加点盐".encode("utf-8")) #
obj.update("123456".encode("utf-8")) #真正的密码
print(obj.hexdigest())

 

Python模块_hashlib模块

标签:字符串   md5   iges   使用   算法   decode   code   简单   dig   

原文地址:https://www.cnblogs.com/iamjames/p/11333319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!