码迷,mamicode.com
首页 > 编程语言 > 详细

Python hashlib模块

时间:2017-11-24 18:02:43      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:通过   style   class   ccf   port   格式   eve   size   new   

 hashlib模块

  • 用于加密相关的操作,代替了md5模块和sha模块
  • 主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
# md5废弃

import md5
hash = md5.new()
hash.update(‘admin‘)
print hash.hexdigest()  

 

# sha 废弃

import sha
hash = sha.new()
hash.update(‘admin‘)
print hash.hexdigest()  

 hashlib加密:

import hashlib

# ######## md5 ########

hash = hashlib.md5()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

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

hash = hashlib.sha1()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

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

hash = hashlib.sha256()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

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

hash = hashlib.sha384()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

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

hash = hashlib.sha512()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

# 输入结果:
48fc6919f119605c4064ea7d81ac6b34
f2e9afa0fbde5b05a444f7bc75d6695fbb84b8d0
05406e832ad8456184cd36fd3bd88dd1fff2392eb873a1fe7aff9e6332bd7a35
3e8027e7a2aa54ba604fbe66f853212f23b4fbae80883972fc8a24a92c04b9cb7c3ee01840ccb98f5c3edf897d15f9fa
e7931c755048f72babc0b6f016c1581a51c4af7d3bef64a1c21156866a68cccf37d6914bacde9f0d7b83e328bc2025847f6754b6eec57be91f06e6ad5ca17d1b 

python3,2种加密书写格式

import hashlib

# ######## md5 ########

hash = hashlib.md5()
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

hash = hashlib.md5()
hash.update(b"evescn")
print(hash.hexdigest())

# 输入结果:
48fc6919f119605c4064ea7d81ac6b34
48fc6919f119605c4064ea7d81ac6b34  

以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

import hashlib

# ######## md5 ########

hash = hashlib.md5("evescn".encode(‘utf-8‘))
hash.update("evescn".encode(‘utf-8‘))
print(hash.hexdigest())

# 输入结果:
d6fd21d81a89fa360fe2ee37c6417b6f  

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

import hmac

h = hmac.new(b"evescn")
h.update(b"evescn")
print(h.hexdigest())

# 输入结果:
bd4e50d0a9c686fad0a0be089ba918be  

 

Python hashlib模块

标签:通过   style   class   ccf   port   格式   eve   size   new   

原文地址:http://www.cnblogs.com/python-gm/p/7891487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!