对于安全的哈希和消息摘要过程,我们应该使用hashlib模块。该模块为不同的安全哈希算法(例如SHA1,SHA224,SHA256,SHA512等)实现通用接口,同时也使用RSA的MD5算法。较旧的算法称为“消息摘要”,新方法称为“安全哈希”。
要使用此模块,我们需要在python代码中导入hashlib模块。
import hashlib
在这种方法中,存在一些预定义的算法,例如md5,sha1,sha224,sha256,sha512。我们可以从OpenSSL库中添加其他算法。
hashlib模块的一些方法和常量如下-
它将返回哈希算法的名称,该模块保证所有不同平台都支持该算法。
它将返回哈希算法的名称,该名称在运行的Python解释器中可用。
它将返回结果哈希的大小(以字节为单位)。
它将返回哈希算法的内部块大小(以字节为单位)。
它是一个构造函数。它以所需的算法名称作为第一个参数。它可以使用OpenSSL库中的预定义哈希或其他算法。
此方法用于使用给定参数更新哈希对象。重复调用此函数等效于带有串联参数的单个调用。
此方法用于返回通过更新方法传递的摘要数据。字节对象的大小与digest_size相同。它可能包含整个0到255之间的字节。
此方法与摘要方法相同,但结果将仅包含十六进制值。此方法用于非常容易地通过Internet发送数据。
import hashlib my_hash1 = hashlib.md5() #Choose md5 and update with a bytes update_bytes = b'Python123' my_hash1.update(update_bytes) print("Result after digesting: " + str(my_hash1.hexdigest())) print("Digest Size: " + str(my_hash1.digest_size)) my_hash2 = hashlib.sha256() #Choose SHA256 and update with same bytes my_hash2.update(update_bytes) print("Result after digesting: " + str(my_hash2.hexdigest())) print("Digest Size: " + str(my_hash2.digest_size))
输出结果
Result after digesting: ae35eacb1cb6f6d38c29a04ecb2d7471 Digest Size: 16 Result after digesting: bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b878007369e373ff419b1e Digest Size: 32