用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。
在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。

什么是摘要算法呢?

摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。

md5加密

hash = hashlib.md5()
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())
21232f297a57a5a743894a0e4a801fc3

sha1加密

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

sha256加密

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

sha384加密

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

sha512加密

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

‘加盐’加密

以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key再来做加密。

######  md5 加密 ############
hash = hashlib.md5('python'.encode('utf-8'))
hash.update('admin'.encode('utf-8'))
print(hash.hexdigest())
75b431c498b55557591f834af7856b9f

hmac加密

hmac内部对我们创建的key和内容进行处理后在加密

import hmac
h = hmac.new('python'.encode('utf-8'))
h.update('helloworld'.encode('utf-8'))
print(h.hexdigest())
b3b867248bb4cace835b59562c39fd55

获取文件的MD5

import hashlib
def md5sum(filename):
    用于获取文件的md5值
    :param filename: 文件名
    :return: MD5码
    if not os.path.isfile(filename):  # 如果校验md5的文件不是文件,返回空
        return
    myhash = hashlib.md5()
    f = open(filename, 'rb')
    while True:
        b = f.read(8096)
        if not b:
            break
        myhash.update(b)   
    f.close()
    return myhash.hexdigest()
简介:  用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。  什么是摘要算法呢?  摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。md5加密hash = hashlib.md5()hash.update('admin'.e 安全安全安全! 任何允许用户登录的网站或app都会存储用户登录的用户名和口令。密码一般都不会以明文的方式进行存储,如果黑客登陆了你的数据 库 系统或者你的数据 库 泄露那估计公司CEO觉得天都要塌下来了。 二、 hash lib 库 使用方法 Python 里面的 hash lib 模块提供了很多 加密 的算法,这里介绍一下 hash lib 的简单使用事例,用 hash lib 的 md5 算法 加密 数据 2.1 md5 () 加密 算法 import hash lib hash = hash lib . md5 ()# import datetime """对一些必须变化的参数进行参数化配置""" reqSerialNum=datetime.datetime.now().strftime('%Y%m%d%H%M%S')+"py"+str(random.randint(11111,9999999))###请求流水号 tellerId="B1430qq"+str(random.randint(111,99999. result = s1.hexdigest() # 结果是40位字符串:'40bd001563085fc35165329ea1ff5c5ecbdbbeef' print(result)
Python 2与 Python3 中 hash lib 的 sha1 结果不一致,网上找了一大圈,都不正确。自己发博客,给有需要的人。真正解决了问题的,请点赞! 在 python 2中正确方法 import hash lib token = “sw7v82sf9hvw” lis = [token,‘1544002201’,‘129793960’] lis.sort() sha1 = hash lib . sha1 () ma...
我是学习 python 编程的小白,我已经工作了,因此不可能做事情是从 python 的基础开始学习,而是做一个项目,直接上手,不懂的再慢慢的去学习; 我很疑惑 hash lib . sha1 ().hexdigest()的用法是什么? 百度过后还是会不记得,难道是记性的问题,肯定不是的,是我们的思维混沌; 先把代码运行一下,看是什么再说 错误是对要 加密 的字符串指定编码格式;我们现在把它编码 byte[] bytes_password = Encoding.UTF8.GetBytes(Password); byte[] bytes_salt = Encoding.UTF8.GetBytes(Salt); Hash Algo...
# 写法一: def get_ hash _value(pwd,salt): hash = hash lib . sha256 (salt.encode('utf8')) #同一种 hash 算法得到的长度是固定的 hash .update(pwd.encode('ut... sha256 .update(message) # 获取 SHA256 哈希值的字节串表示,并将其转换为十六进制字符串 encrypted = sha256 .hexdigest() # 返回十六进制字符串 return encrypted 在上面的代码中,我们使用了 Python 内置的 hash lib 库 ,它提供了各种哈希算法的实现。我们首先将输入字符串编码为utf-8格式的字节串,然后创建了一个 SHA256 对象。接着,我们使用update()方法来更新 SHA256 对象的哈希值,最后使用hexdigest()方法将哈希值的字节串表示转换为十六进制字符串并返回。 docker 嵌套技术 docker outside of docker 可用于一个容器内调用另一个容器内程序 跨容器调用 docker容器内获取自身容器信息 qq_24680545: 这个好像只有root用户可以使用,普通的用户运行docker命令的话会遇到权限不足的问题. python3 报错 ‘builtin_function_or_method‘ object has no attribute 解决方法 lmylmylmy@: linux c 错误 invalid application of 'sizeof' to incomplete type 解决方案 落叶何翩翩: 太赞了,帮我解决了问题 golang 程序后台运行的方法 linux windows 合理选号: go build -ldflags "-H=windowsgui" 这才是正确的