python中hashlib加密模块的使用

hashlib

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

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
__author__ = 'junxi'

import hashlib

# ######## md5 ########
hash = hashlib.md5()
# help(hash.update)
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())
print(hash.digest())


# ######## sha1 ########
hash = hashlib.sha1()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())


# ######## sha256 ########
hash = hashlib.sha256()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())


# ######## sha384 ########
hash = hashlib.sha384()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())


# ######## sha512 ########
hash = hashlib.sha512()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())

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

import hashlib

# ######## md5 ########
hash = hashlib.md5('898oaFs09f'.encode("utf-8"))
hash.update('admin'.encode("utf-8"))
print(hash.hexdigest())

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

import hmac

h = hmac.new('898oaFs09f'.encode("utf-8"))
h.update('admin'.encode("utf-8"))
print(h.hexdigest())
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容