Python3-hashlib模块-加密算法之安全哈希

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3-hashlib模块-加密算法之安全哈希相关的知识,希望对你有一定的参考价值。

Python3中的hashlib模块提供了多个不同的安全哈希算法的通用接口

  hashlib模块代替了Python2中的md5和sham模块,使用这个模块一般分为3步

    1.创建一个哈希对象,使用哈希算法命名的构造函数或通用构造函数hashlib.new(name[, data])

    2.使用哈希对象调用update()方法填充这个对象

    3.调用digest() 或 hexdigest()方法来获取摘要(加密结果)

  注:

    1.update()方法需要接收的参数是一个字节对象(字节字符串,如:b"Hello,World!")

    2.常用的一些算法主要有: SHA1, SHA224, SHA256, SHA384, SHA512, MD5等算法

    3.SHA1算法比较早,是不能抵抗暴力破解的

hashlib模块提供一下常量属性

  hashlib.algorithms_guaranteed

    获取保证在所有平台上此模块支持的哈希算法名称的集合

  hashlib.algorithms_available

    获取可以运行在Python解释器中的哈希算法名称的集合

哈希对象常用的方法

  h = hashlib.md5()  或  h = hashlib.new("md5")        # md5可以替换为其他的哈希类型

  h.update(arg)

    将字节对象arg填充到哈希对象中,arg通常为要加密的字符串

  h.digest()

    返回加密结果,它是一个字节对象,长度为 h.digest_size,包含的字节范围 0 ~ 255

  h.hexdigest()

    返回加密结果,它是一个字符串对象,长度为 h.digest_size * 2,只包含16进制数字

技术分享
import hashlib

password = b"Hello,World!"    # 要加密的数据

# 1.创建一个hash对象
h = hashlib.sha256()

# 2.填充要加密的数据
h.update(password)

# 3.获取加密结果
result = h.hexdigest()
print(result)    # 输出结果:8f4ec1811c6c4261c97a7423b3a56d69f0f160074f39745af20bb5fcf65ccf78
数据加密三部曲

 

以上是关于Python3-hashlib模块-加密算法之安全哈希的主要内容,如果未能解决你的问题,请参考以下文章

python之hashlib模块

安全模块 - 对称加密算法

Python之hashlib模块的使用

常用安全算法之对称加密算法与非对称加密算法

linux 加密安全之AWK

安全与加密之加密算法,CA,openssl,证书管理