我是靠谱客的博主 隐形电话,最近开发中收集的这篇文章主要介绍数据加密模块---hashlib,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部