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

来源:互联网 发布:知乎眼睛漂亮的女孩 编辑:程序博客网 时间:2024/06/08 04:48

登录网站的用户名密码数据库是不会以明文密码进行存储的,简单的,可以通过摘要算法得到一个长度固定的数据块。

1、摘要算法格式:

import hashlib         #导入hashlib模块md = hashlib.md5()     #获取一个md5加密算法对象md.update('how to use md5 in hashlib?'.encode('utf-8'))                   #制定需要加密的字符串print(md.hexdigest())  #获取加密后的16进制字符串

得到如下:

d26a53750bc40b38b65a520292f69306

需要注意的是,字符串后面要加个

.encode(‘utf-8’)

目的是为了对字符串进行转换成utf-8格式的。具体为什么不知道,反正不这么做的话会出错。

2、以一个例子来说明具体用法。

import hashlibdb = {}#计算密码的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 sucessfullyIncorrect passwordUser is not exist!

参考:廖雪峰的官方网站

原创粉丝点击