hashlib hmac模块

一、hashlib

md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的。但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性。
sha算法比MD5算法安全,但所需的时间也稍长。

1、原始消息摘要
#md5加密
import hashlib,hmac
m=hashlib.md5()
m.update(b'hello')
print(m.hexdigest())

#sha256加密
hash=hashlib.sha256()
hash.update(b'admin')
print(hash.hexdigest())
2、加盐(salt)后摘要

由于同一个消息通过摘要算法得到的摘要是相同的,因此可以通过撞库的方式得到原始消息值。解决方式是,添加一个salt拼接原始消息后再进行计算。

import hashlib
hash=hashlib.md5(b'856oaF01')
hash.update(b'admin')
print(hash.hexdigest())
#以上等价与
hash=hashlib.md5()
hash.update(b'856oaF01admin')
print(hash.hexdigest())

二、hmac

HAMC它内部对我们创建 key 和 内容 再进行处理然后再加密,相当安全。一般用于挑战应答。

import hmac
h=hmac.new(b'123')
h.update(b'admin')
print(h.hexdigest())
#内部可能将原字符串变成了"1a2dm3in"或"a1d2min3"等等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,947评论 0 6
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 13,962评论 5 29
  • 单向散列函数的说明单向散列函数也称为消息摘要函数, 哈希函数 或者 杂凑函数单向散列函数输出的散列值又称为消息摘要...
    Mario_ZJ阅读 9,362评论 0 1
  • 雪·印记 她着一身黑,冷调三色围巾在风的吹拂下拍打着她的前胸。走在整个被雪覆盖的过道,周遭有一种特殊的静。 她是一...
    新耕农夫阅读 1,463评论 0 0
  • 我猜测 担在身上不仅仅是痛,还有感情的积累 心收到了命运的愚弄,思绪仿佛踮起脚尖在刀尖上跳舞 你是不是真的累了,已...
    迷尼阅读 1,216评论 0 0

友情链接更多精彩内容