首页 > 上网技巧 > python学习——hashlib.md5摘要算法(哈希算法...

python学习——hashlib.md5摘要算法(哈希算法)

时间:2021-01-30 13:41 作者:QQ地带 我要评论

登录网站的用户名密码数据库是不会以明文密码进行存储的,简单的,可以通过摘要算法得到一个长度固定的数据块。
 
1、摘要算法格式:
 
import hashlib         #导入hashlib模块
 
md = hashlib.md5()     #获取一个md5加密算法对象
md.update('how to use md5 in hashlib?'.encode('utf-8'))                   #制定需要加密的字符串
print(md.hexdigest())  #获取加密后的16进制字符串
 
得到如下:
 
d26a53750bc40b38b65a520292f69306
1
需要注意的是,字符串后面要加个
 
.encode(‘utf-8’)
 
因为hashlib是对二进制进行加密的,如果直接对字符串加密的话, 会报错的。因此需要通过encode将字符串转码成二进制格式。
 
2、以一个例子来说明具体用法。
 
import hashlib
 
db = {}
 
#计算密码的md5值
def get_md5(s):
    md = hashlib.md5()
    md.update(s.encode('utf-8'))
    return md.hexdigest()
 
#注册新的用户
def register(username,password):
    db[username] = get_md5(password + username + 'SSC')
 
#验证用户登录
def login(username,password):
    if not username in db:
        print('User is not exist!')
        return
    if db[username] == get_md5(password + username + 'SSC'):
        print('Login sucessfully')
    else:
        print('Incorrect password')
 
#主程序
if __name__ == '__main__':
    user1 = 'xiaoming'
    psw1 = '123456'
    register(user1,psw1)  #注册新用户
    login(user1,psw1)     #登录成功
    login(user1,psw1+' ')  #密码错误,登录失败
    login(user1+' ',psw1)  #用户名错误,登录失败
 
得到结果如下:
 
Login sucessfully
Incorrect password
User is not exist!

标签: Python
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告