详解如何在Python中做Hash加密

  • Post category:Python

当需要对一个数据进行加密处理时,Hash函数便是一种常见的加密方式,它可以将任意长度的输入内容(例如一段文本或者一个文件)映射成固定长度的哈希值,并且能够保证相同的输入内容得到的哈希值一定是相同的,而不同的输入内容得到的哈希值不同。

在Python中,我们可以使用hashlib模块进行Hash加密操作。下面通过两个示例,详细讲解如何在Python中进行Hash加密。

示例1:对一段文本进行Hash加密

首先,我们需要引入hashlib模块。

import hashlib

接着,我们可以定义一段文本:

text = 'Hello World'

然后,我们使用 hashlib.sha256() 方法对文本进行加密,这里选择使用 SHA-256 算法:

hash_object = hashlib.sha256(text.encode())

最后,我们可以将加密后的哈希值打印出来:

hex_dig = hash_object.hexdigest()
print(hex_dig)

完整代码如下:

import hashlib

text = 'Hello World'

hash_object = hashlib.sha256(text.encode())

hex_dig = hash_object.hexdigest()
print(hex_dig)

输出结果:

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

可以看到,我们成功地使用Hash算法对一段文本进行了加密处理。

示例2:对文件进行Hash加密

我们同样可以使用 hashlib 模块对文件进行Hash加密。下面,我们以一张图片作为示例。

首先,我们需要打开图片,读取二进制文件:

with open('./example.png', 'rb') as f:
    file_content = f.read()

然后,我们可以使用 hashlib.sha256() 方法,对文件内容进行Hash加密:

hash_object = hashlib.sha256(file_content)

最后,我们将加密后的哈希值打印出来:

hex_dig = hash_object.hexdigest()
print(hex_dig)

完整代码如下:

import hashlib

with open('./example.png', 'rb') as f:
    file_content = f.read()

hash_object = hashlib.sha256(file_content)

hex_dig = hash_object.hexdigest()
print(hex_dig)

输出结果:

a153aabaaabfeceea486e25e2ff1b9d0b13c1407a79526021c85e826b1ebc4ad

可以看到,我们成功地使用Hash算法对图片文件进行了加密处理。

综上所述,以上是如何在Python中做 Hash 加密的详细攻略。