当前位置: 首页 > 编程笔记 >

Python hashlib模块加密过程解析

郎志
2023-03-14
本文向大家介绍Python hashlib模块加密过程解析,包括了Python hashlib模块加密过程解析的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了Python hashlib模块加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

hashlib模块  

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

import hashlib
 
m = hashlib.md5()
m.update(b"Hello")
m.update(b"It's me")
print(m.digest())
m.update(b"It's been a long time since last time we ...")
 
print(m.digest()) #2进制格式hash
print(len(m.hexdigest())) #16进制格式hash
'''
def digest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of binary data. """
  pass
 
def hexdigest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of hexadecimal digits. """
  pass
 
'''
import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5()
hash.update('admin')
print(hash.hexdigest())
 
# ######## 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(b'天王盖地虎', b'宝塔镇河妖')
print h.hexdigest()

更多关于md5,sha1,sha256等介绍的文章看这里https://www.tbs-certificates.co.uk/FAQ/en/sha256.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍基于hashlib模块--加密(详解),包括了基于hashlib模块--加密(详解)的使用技巧和注意事项,需要的朋友参考一下 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 print(m.digest()) #2进制格式hash print(len(m.hexdigest(

  • 本文向大家介绍Python内置加密模块用法解析,包括了Python内置加密模块用法解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python内置加密模块用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 数据加密: 对称加密:数据加密和解密使用相同的密钥,主要解决数据的机密性(DES,AES) 非对称加密(公匙加密):数据加

  • 本文向大家介绍Java通过BCrypt加密过程详解,包括了Java通过BCrypt加密过程详解的使用技巧和注意事项,需要的朋友参考一下 一、概述 在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流行。相对来说,BCryp

  • 本文向大家介绍JAVA中AES对称加密和解密过程,包括了JAVA中AES对称加密和解密过程的使用技巧和注意事项,需要的朋友参考一下 AES对称加密和解密代码详细介绍,供大家参考,具体内容如下  测试结果: 使用AES对称加密,请输入加密的规则 使用AES对称加密 请输入要加密的内容: 使用AES对称加密 根据输入的规则使用AES对称加密加密后的密文是:Z0NwrNPHghgXHN0CqjLS58Y

  • 本文向大家介绍python select.select模块通信全过程解析,包括了python select.select模块通信全过程解析的使用技巧和注意事项,需要的朋友参考一下 要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值。 select()方法接收并监控3个通信列表, 第一个是所有的输入的data,就是指外部发过来的数据,第2个是监控和接收所有要发出去的d

  • 问题内容: 寻找一种在node中加密数据(主要是字符串)并在android应用(java)中解密的方法。 在每个节点中都成功做到了这一点(在节点中进行加密/解密,在Java中进行加密/解密),但是似乎无法使其在它们之间起作用。 可能我不是以相同的方式进行加密/解密,但是每种语言的每个库对于相同的事物都有不同的名称… 任何帮助表示赞赏。 这是一些代码:Node.js 和java 原始密钥是这样创建的