没有合适的资源?快使用搜索试试~ 我知道了~
首页Python3 加密(hashlib和hmac)模块的实现
Python3 加密(hashlib和hmac)模块的实现
8 下载量 81 浏览量
更新于2023-03-03
评论
收藏 59KB PDF 举报
以下代码以Python3.6.1为例 hashlib : 不可逆加密 hmac : 不可逆键值对方式加密 hashlib模块简介: hashlib模块为不同的安全哈希/安全散列(Secure Hash Algorithm)和 信息摘要算法(Message Digest Algorithm)实现了一个公共的、通用的接口,也可以说是一个统一的入口。因为hashlib模块不仅仅是整合了md5和sha模块的功能,还提供了对更多中算法的函数实现,如:MD5,SHA1,SHA224,SHA256,SHA384和SHA512。 hashlib模块使用步骤: 1)获取一个哈希算法对应的哈希对象(比如
资源详情
资源评论
资源推荐
Python3 加密加密(hashlib和和hmac)模块的实现模块的实现
以下代码以Python3.6.1为例
hashlib : 不可逆加密
hmac : 不可逆键值对方式加密
hashlib模块简介:模块简介:
hashlib模块为不同的安全哈希/安全散列(Secure Hash Algorithm)和 信息摘要算法(Message Digest Algorithm)实现了一
个公共的、通用的接口,也可以说是一个统一的入口。因为hashlib模块不仅仅是整合了md5和sha模块的功能,还提供了对更
多中算法的函数实现,如:MD5,SHA1,SHA224,SHA256,SHA384和SHA512。
hashlib模块使用步骤:模块使用步骤:
1)获取一个哈希算法对应的哈希对象(比如名称为hash): 可以通过 hashlib.new(哈希算法名称, 初始出入信息)函数,来获
取这个哈希对象,如hashlib.new(‘MD5’, ‘Hello’),hashlib.new(‘SHA1’, ‘Hello’)等;也可以通过hashlib.哈希算法名称()来获取
这个哈希对象,如hashlib.md5(), hashlib.sha1()等。
2)设置/追加输入信息: 调用已得到哈希对象的update(输入信息)方法可以设置或追加输入信息,多次调用该方法,等价于把
每次传递的参数凭借后进行作为一个参数垫底给update()方法。也就是说,多次调用是累加,而不是覆盖。
3)获取输入信息对应的摘要: 调用已得到的哈希对象的digest()方法或hexdigest()方法即可得到传递给update()方法的字符串
参数的摘要信息。digest()方法返回的摘要信息是一个二进制格式的字符串,其中可能包含非ASCII字符,包括NUL字节,该字
符串长度可以通过哈希对象的digest_size属性获取;而hexdigest()方法返回的摘要信息是一个16进制格式的字符串,该字符
串中只包含16进制的数字,且长度是digest()返回结果长度的2倍,这可用邮件的安全交互或其它非二进制的环境中。
#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/19'
# hash_demo.py Hash加密相关(安全哈希)
# 支持: MD5, SHA1 SHA224 SHA256 SHA384 SHA512
import hashlib
def hash_demo():
m = hashlib.md5()
m.update(b"hello")
m.update(b"world!") # = hello + world!
hash_hex = hashlib.sha3_512(b"luzhuo.me").hexdigest()
print(m.digest_size)
print(m.digest()) # 二进制hash
print(m.hexdigest()) # 十六进制hash
print(hash_hex)
# 加盐加密
hash_bytes = hashlib.pbkdf2_hmac('sha256', b'luzhuo.me', b'80', 100000)
print(hash_bytes)
def hash_func():
# hashlib.new(name[, data]) // 创建hashlib(非首选), name=算法名, data:数据
hash = hashlib.new('ripemd160', b'luzhuo.me')
# 常量
dics = hashlib.algorithms_guaranteed # 所有平台支持的hash算法的名称
dics = hashlib.algorithms_available # 在Python解析器中可用的hash算法的名称, 传递给new()时, 可识别
# hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) // 加盐加密 hash_name:hash名称, password:数
据, salt:盐, iterations:循环次数, dklen:密钥长度
hash_bytes = hashlib.pbkdf2_hmac('sha256', b'luzhuo.me', b'80', 100000)
# hash对象
num = hash.digest_size # hash结果的大小
num = hash.block_size # hash算法的内部块的大小
strs = hash.name # hash名称, 可传给new()使用
hash.update(b"data") # 字节缓冲区 hash.update(a) hash.update(b) == hash.update(a+b)
hash_bytes = hash.digest() # 字节hash
weixin_38725734
- 粉丝: 4
- 资源: 933
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0