添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

用于加密相关的操作,代替了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" 这才是正确的