温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python中hashlib模块有什么用

发布时间:2021-07-10 15:24:46 来源:亿速云 阅读:163 作者:Leah 栏目:互联网科技

这期内容当中小编将会给大家带来有关python中hashlib模块有什么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

密码散列函数定义

密码散列函数通过哈希算法(又称摘要算法、散列算法)将任意长度的数据转换为一个固定长度的二进制数据(通常用16进制字符串表示)。

常见密码散列函数

常见的密码散列函数有:md5是128位(32个字符)、sha1是160位(40个字符)、sha224(224位56个字符)、sha384(384位66个字符)、sha3_224(224位56个字符)、sha3_256(256位64个字符)、sha3_384(384位96个字符)、sha3_512(512位128个字符)、sha512(512位128个字符)、shake_128(128位32个字符)、shake_256(256位64个字符)等等。

密码散列函数特点和作用

密码散列函数的特点:通过哈希算法对任意长度的数据计算出固定长度的摘要。对相同的数据计算得出的摘要相同;对不同的数据计算得出的摘要不同(存在非常非常低概率不同数据得出相同摘要,简称碰撞);无法通过摘要还原数据。所以可通过对比摘要检查数据是否被篡改。
密码散列的作用有:电子签名、防篡改、存储密码等等。
另外:目前 MD5、SHA1 已经被证实存在隐患,更推荐使用sha2和sha3。

密码散列函数使用案例

以下是sha2和sha3使用案例(请注意加盐用法,即对字符串计算哈希值之前添加干扰值。可以提高安全性和降低撞库的可能性):

import hashlib

sha2 = hashlib.sha224()  # 标准sha2用法sha2.update("Test sha2".encode("utf8"))print(sha2.hexdigest())sha2 = hashlib.sha224('eqwro'.encode('utf8'))  # 加盐sha2用法sha2.update("Test sha2".encode("utf8"))print(sha2.hexdigest())sha3 = hashlib.sha3_224()  # 标准sha3用法sha3.update("Test sha2".encode("utf8"))print(sha3.hexdigest())sha3 = hashlib.sha3_224('eqwro'.encode('utf8'))  # 加盐sha3用法sha3.update("Test sha2".encode("utf8"))print(sha3.hexdigest())out:844e8c2c97312b6344377e49a412e2545e75a7b551f9551038a5f451a2cb1365509f141da28fe3935f7f6c8c6ef7b3fb347004f98d8b283c
f92459c0c2ccc081e26d607b8fd39f804f6a57641446f6be01d4596f
c2320f0da1a04385b1518fdeb69ddcdf34e5b25996447d2cfbb25f9f

python的hashlib模块中没有直接计算文件哈希值的方法,可以通过以下方法实现对文件计算哈希值。

def sha3_file(file_path, salt='', buffers=1024):sha3 = hashlib.sha3_224(salt.encode('utf8'))with open(file_path, 'rb') as f:while data := f.read(buffers):sha3.update(data)return sha3.hexdigest()print(sha3_file('all1.jpg'))out:c88d28d070e6ec978b6d51814ca7e7c27b8a2bf26b58819826815d2c

上述就是小编为大家分享的python中hashlib模块有什么用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI