如何在Python中做Hash加密
在这篇文章中,我们将了解如何在python中进行密码散列。
一个强大的密码可以提供安全。纯文本密码是非常不安全的,所以我们需要通过散列密码来加强密码。哈希密码是一种廉价而安全的方法,可以使密码不受恶意活动的影响。密码散列为每个文本生成一个独特的密码,即使明文密码是相同的。
为什么我们需要Hash加密?
哈希主要用于保护密码不被黑客入侵。假设,如果一个网站被黑,网络犯罪分子不会获得你的密码。相反,他们只是获得了通过散列方法创建的加密 “散列”。
什么是Hash中的salt?
在密码学中,salt是随机数据,作为单向函数的额外输入,用于加密数据,如密码。盐被用来保持密码在存储时的安全性。从历史上看,一个系统中只有密码的加密散列函数被维护,但随着时间的推移,人们开发了额外的预防措施,以防止识别重复的或普通的密码。其中一个预防措施就是加盐。
加密。加密是对纯文本或任何信息进行编码的过程,只有被授权的人才能用相应的密钥来阅读,这样就可以保护机密数据不被未经授权的人获取。
散列:散列将任何数量的数据转换为一个固定长度的散列,不能被逆转。它在密码学中被广泛使用。散列允许我们验证输入是否有轻微的变化,如果它被改变,产生的散列将是不同的。在这篇文章中,我们将学习盐化密码哈希技术。它包括转换一种算法,将任何大小的数据映射到一个固定的长度。
什么是BCrypt?
BCrypt算法是用来以安全的方式对密码进行散列和加盐。BCrypt能够创建一个密码保护层,可以发展本地硬件创新,以防止长期的危害或威胁,如攻击者有计算能力来猜测密码的两倍效率。
用pip安装bcrypt。
pip install bcrypt
例子。在这个程序中,我们将使用bcrypt对密码进行散列。
这里我们使用 “GeekPassword “作为输入,将其转换为哈希值。
import bcrypt
# Declaring our password
password = b'GeekPassword'
# Adding the salt to password
salt = bcrypt.gensalt()
# Hashing the password
hashed = bcrypt.hashpw(password, salt)
# printing the salt
print("Salt :")
print(salt)
# printing the hashed
print("Hashed")
print(hashed)
输出:
什么是Hashlib?
Python hashlib模块是一个方便对消息进行散列的接口。它包含许多方法,可以处理将任何原始信息散列成加密格式。这个模块的主要目的是在一个字符串上使用哈希函数,并对其进行加密,这样就很难解密了。哈希库。它用于创建一个哈希表。散列表是一种数据结构,旨在通过一组条目进行搜索,每个条目都由一个唯一的密钥来识别。
用pip安装hashlib。
pip install hashlib
例2:在这个程序中,我们将使用hashlib对密码进行散列。
这里我们使用 “GeekPassword “作为输入,将其转换为哈希值。
import hashlib
# Declaring Password
password = 'GeeksPassword'
# adding 5gz as password
salt = "5gz"
# Adding salt at the last of the password
dataBase_password = password+salt
# Encoding the password
hashed = hashlib.md5(dataBase_password.encode())
# Printing the Hash
print(hashed.hexdigest())
输出: