基于hashlib模块--加密(详解)

作者:jingxian 时间:2023-10-08 15:46:29 

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法


import hashlib

m = hashlib.md5()
m.update(b"hello")
print(m.hexdigest())
m.update(b"It's me")
print(m.hexdigest())
m.update(b"It's been a long time since we spoken.")
print(m.hexdigest())

m2 = hashlib.md5()
m2.update(b"helloIt's me")
print(m2.hexdigest())

# 输出
5d41402abc4b2a76b9719d911017c592
64f69d95135bc13d4827f871b37f780f
0c9a83e10aa2f9e9629be61146db9cc2
64f69d95135bc13d4827f871b37f780f

#第二个和第四个 md5值是相同的,所以第二个加密的是 helloIt'sme<br><code class="python comments"><br></code>

print(m.digest()) #2进制格式hash

print(len(m.hexdigest())) #16进制格式hash


# ######## sha1 ########

hash = hashlib.sha1()
hash.update('admin')
print(hash.hexdigest())

# ######## sha256 ########

hash = hashlib.sha256()
hash.update('admin')
print(hash.hexdigest())

# ######## sha384 ########

hash = hashlib.sha384()
hash.update('admin')
print(hash.hexdigest())

# ######## sha512 ########

hash = hashlib.sha512()
hash.update('admin')
print(hash.hexdigest())

python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。


import hmac

h = hmac.new("天王盖地虎".encode(encoding="utf-8"), "你是小松鼠".encode(encoding="utf-8"))
print(h.digest())
print(h.hexdigest())

#输出
b'fx\xad\xdd\x9e\xd6\xddcQN\x82c\xcd\xd9\x80-'
6678addd9ed6dd63514e8263cdd9802d
标签:python,hashlib模块
0
投稿

猜你喜欢

  • 使用vue实现HTML页面生成图片的方法

    2024-04-27 15:51:47
  • 磁盘缓存专题之一 缓存命中和缓存未命中&缓存与缓冲间的差异

    2012-10-07 11:02:46
  • Python根据输入参数计算结果的实例方法

    2021-12-15 08:30:45
  • 详细介绍Python中的set集合

    2023-07-26 07:35:03
  • Python 高级专用类方法的实例详解

    2023-10-11 14:13:52
  • 通俗易懂了解Python装饰器原理

    2021-07-18 13:48:20
  • 让XML在ASP中发挥其长处

    2008-01-16 19:07:00
  • Python字典对象实现原理详解

    2023-06-11 01:53:21
  • Python数据结构之图的存储结构详解

    2021-03-28 10:42:48
  • PHP使用flock实现文件加锁的方法

    2023-10-29 21:26:59
  • 如何把数据库记录显示到列表框里去?

    2009-11-06 13:48:00
  • python数字图像处理之基本图形的绘制

    2021-10-21 05:29:42
  • python 远程统计文件代码分享

    2023-04-13 17:02:08
  • 老生常谈CSS网页布局的意义与副作用

    2008-09-12 12:31:00
  • Python3爬虫学习之爬虫利器Beautiful Soup用法分析

    2021-04-13 07:01:50
  • mysql数据库查询基础命令详解

    2024-01-19 21:19:21
  • 用python3 返回鼠标位置的实现方法(带界面)

    2021-07-17 15:11:40
  • 理解python中生成器用法

    2022-08-27 10:49:59
  • Pytorch中实现只导入部分模型参数的方式

    2023-01-24 05:53:25
  • python 操作 mongodb 数据库详情

    2024-01-19 17:53:45
  • asp之家 网络编程 m.aspxhome.com