概述
hash:散列,也成称‘哈希’,把任意长度的输入,通过散列算法,变化成固定长度的输出,---简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数
各输出:
MD5:128位,因一个十六进制字符占4位,所以最终hexdigest(就转成16进制)生成的是32位的字符串
SHA1:160位,同上,生成40位16进制数(串)
SHA256:256位,64位
虽然生成的‘数字指纹’(16进制串)越长越安全,但是生成耗时也会同比增长(输出多,必然算法更复杂,运行更耗时),占用空间大(128位长度的密码显然比64位的占用空间要多一倍),所以,目前最流行的为 SHA256
用法:update()方法:添加需要转换的字符串;hexdigest()方法,转十六进制
>>> hash = hashlib.sha256()
>>> hash.update('huang'.encode())
>>> hash.hexdigest()
'd8e52067b8c3d881595c6a25aea67f94570239ff19e058cd0866ba549af311c7'
>>> hash1 = hashlib.sha1()
>>> hash1.update(b'huang')
>>> hash1.hexdigest()
'21bc9b529e627b2b035aaf9bf5357db61ead2c3d'
>>> md = hashlib.md5()
>>> md.update(b'huang')
>>> md.hexdigest()
'4e8f794089b6b4ef55cd0399dca1433c'
>>> sha5 = hashlib.sha512()
>>> sha5.update(b'huang')
>>> sha5.hexdigest()
'de7c548b9d1a6258ba96b48720ac8c3b7daccbf16c3dcd3eefc4c2de3943ec84c3d7992f3e0215ee61932ceb02b29623d41440dddfd3f03369a2f099d36f6e20'
import hashlib, json username = input('your usrname:') password = input('your password:') secret_passwd = hashlib.sha224((username+password).encode()).hexdigest() file1 = open('secret_user_info.txt', 'r') user_info = json.load(file1) if username not in (user_info): user_info.setdefault(username, secret_passwd) with open('secret_user_info.txt', 'w') as f2: json.dump(user_info, f2) print('add user to db success!') else: if secret_passwd == user_info[username]: print('login success!') else: print('erro password!')
最后
以上就是隐形电话为你收集整理的数据加密模块---hashlib的全部内容,希望文章能够帮你解决数据加密模块---hashlib所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复