python内置模块之halshlib 模块,哈希加密

一、简介

Halshlib 是一个 Python 库,用于计算和比较哈希值。它提供了一种快速和高效的方法来计算和比较各种哈希函数的值。
Halshlib 支持多种哈希函数,包括常见的哈希函数(如 MD5、SHA1、SHA256 等)以及其他一些哈希函数(如 MurmurHash、CityHash 等)。你可以使用这些哈希函数来计算数据的哈希值。
使用 Halshlib,你可以轻松地计算给定数据的哈希值,并将其用于各种用途,如数据完整性验证、密码存储、数据分片等。它还提供了一些方便的功能,如生成随机盐、计算哈希值的摘要等。

二、使用
import halshlib
三、方法

1.hash_en = hashlib.new(name,data,usedforsecurity):创建加密对象

  • name:指定要使用的哈希算法的名称。可以是 hashlib 模块支持的任何哈希算法的名称,如 “md5”、“sha1”、“sha256” 等。可以通过 hashlib.algorithms_guaranteed 属性查看 hashlib 模块支持的所有算法的名称列表。
  • data:可选参数,表示要计算哈希值的数据。如果提供了该参数,则会在创建哈希对象后立即调用 update() 方法将数据添加到哈希对象中,字节
  • usedforsecurity:可选参数,表示是否将哈希用于安全目的。默认为 True。当该参数为 True 时,哈希对象将使用更安全的方式进行初始化,以符合密码学安全性要求。如果仅用于非安全目的,可以将该参数设置为 False,以提高性能。
import hashlib

hash_en = hashlib.new('md5')  # 等同于 halshlib.md5()

print(hash.digest_size)  # 获取加密哈希对象的大小
print(hash.block_size)  # 哈希算法的内部块大小
print(hash.name)

2.hash_en = hashlib.md5(data,usedforsecurity):md5加密
3.hash_en = hashlib.sha1(data,usedforsecurity):sha1 加密
4.hash_en = hashlib.sha224(data,usedforsecurity):sha224 加密
5.hash_en = hashlib.sha256(data,usedforsecurity):sha256 加密
6.hash_en = hashlib.sha384(data,usedforsecurity):sha384 加密
7.hash_en = hashlib.sha512(data,usedforsecurity):sha512 加密
8.hash_en = sha3_224(data,usedforsecurity):sha3_224 加密
9.hash_en = sha3_256(data,usedforsecurity):sha3_256 加密
10.hash_en = sha3_384(data,usedforsecurity): sha3_384 加密
11.hash_en = sha3_512(data,usedforsecurity):sha3_512 加密
12.hash_en = shake_128(data,usedforsecurity):shake_128 加密
13.hash_en = shake_256(data,usedforsecurity):shake_256 加密
14.hash_en = blake2b(data,usedforsecurity):blake2b 加密
15.hash_en = blake2s(data,usedforsecurity):blake2s 加密

四、HASH对象

1.hash_en.hexdigest():返回哈希对象的十六进制表示形式的哈希值。
2.hash_en.digest():返回哈希对象的原始二进制形式的哈希值。
3.hash_en.update(data):将提供的数据添加到哈希对象中,可以在加密之前对明文进行加盐操作:加盐操作是在哈希过程中引入随机数据以增加安全性的技术

import hashlib

hash_en = hashlib.md5(b'test')
hash_en.update(b'hello')
print(hash_en.hexdigest())  # 加密明文testhello

print(hash_en.hexdigest()) # 加密明文testhello
4.hash_en.copy():创建并返回哈希对象的副本。这个方法可以用于在不改变原始哈希对象的情况下进行进一步的操作。
5.hash_en.name:返回哈希对象使用的哈希算法的名称。在这个例子中,它将返回字符串 “md5”,表示使用的是 MD5 算法。
6.hash_en.digest_size:返回哈希对象的哈希值的字节大小。对于 MD5 算法,它的值是 16。
7.hash_en.block_size:返回哈希对象的内部块大小(以字节为单位)。对于 MD5 算法,它的值是 64。

五、加密应用场景

1.数据传输保密性:在网络通信中,通过使用加密算法对数据进行加密,可以确保数据在传输过程中的保密性。这可以防止未经授权的人获取敏感信息。
2.用户认证和密码存储:在用户认证过程中,密码通常会被哈希加密后存储在数据库中。这样即使数据库泄露,攻击者也无法直接获取用户的明文密码。当用户登录时,输入的密码会经过相同的加密算法进行哈希计算,然后与数据库中存储的哈希值进行比较,以验证用户的身份。
3.数字签名:数字签名使用非对称加密算法,通过对数据进行加密和签名,可以验证数据的完整性和真实性。数字签名常用于身份验证、电子合同和文件的完整性验证等场景。
4.敏感数据保护:在存储敏感数据(如个人身份信息、银行账户信息等)时,可以使用加密算法对数据进行加密,以防止未经授权的访问。只有拥有正确的密钥才能解密数据。
5.加密货币:加密货币使用加密算法来确保交易的安全性和匿名性。通过使用公钥和私钥进行加密和解密,确保交易的机密性和完整性。
6.数据库加密:对数据库中的敏感数据进行加密,可以在数据库被盗或未经授权的访问时保护数据的机密性。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值