安全是当今IT的重要组成部分,并赢得IT界更多的尊重。哈希是一种保护和检查数据的安全措施。在本教程中,我们将了解如何使用哈希表和字符串。
什么是哈希
Hash是一种函数,其中提供的数据将转换为另一种表达式格式,并且不能用普通函数恢复。
MD5型
MD5是很久以前创建的非常流行的哈希算法。它在It界非常流行。但它有安全问题,这使得它不安全的公共使用。
SHA1/SHA224/SHA256/SHA384/SHA512
SHA是一个散列算法家族,可以在其中创建不同大小的散列。我们可以创建从128字节到512字节的散列。SHA算法是近年来流行的一种算法,可以安全地应用于我们的应用和系统中。
OpenSSL
OpenSSL是一种流行的提供加密功能的库。我们可以使用不同的加密和散列算法。还有OpenSSL库和Python模块。
Hashlib模块
Hashlib是Python提供的内置库。这个库主要提供不同类型的散列库,我们前面已经解释过了。我们可以进口 hashlib
模块如下。
import hashlib
MD5哈希
现在我们来看看如何将给定的值散列成MD5散列。我们将使用 md5()
由提供的功能 hashlib
. 在这个例子中,我们将散列字符串 poftut.com
. 为了创建散列,我们必须用 encode()
功能。
hashlib.md5('poftutcom'.encode())

打印哈希十六进制格式
我们可以以十六进制格式打印创建的哈希。我们只需要使用 hexdigest()
一个接一个的散列函数。
hashlib.md5('poftutcom'.encode()).hexdigest()

SHA256哈希
我们还可以使用 sha256()
功能。在这个例子中,我们将散列字符串 poftut.com
. 正如我们将看到的,这个散列函数将为MD5提供不同的值。create hash将比MD5长,这使得它比MD5更安全
hashlib.sha256('poftutcom'.encode()).hexdigest()

SHA512哈希
SHA512是SHA家族中最安全的版本。使用这个散列将使我们的实现更加安全。我们可以像下面这样使用SHA512。我们将看到,它将创建比以前实现的MD5和SHA256更长的散列结果。
hashlib.sha512('poftutcom'.encode()).hexdigest()

散列多个值
如果我们有很多对象,那么需要逐个散列这些对象是非常乏味的任务。我们可以使用循环或 map
函数来实现哈希。在这个例子中,我们将提供3个字符串来进行散列 sha256
并以十六进制格式打印到控制台。
for h in map(hashlib.sha256,['poftut.com'.encode(),'ismail'.encode(),'ali'.encode()]): h.hexdigest()
