hashlib sha256 加盐
时间: 2023-07-15 20:12:26 浏览: 62
在使用 hashlib 的 sha256 进行加密时,我们可以通过增加一个随机的“盐”(salt)来提高安全性。盐是一个随机字符串,与要加密的数据一起进行哈希运算,这样可以使得相同的明文数据在经过哈希运算后得到不同的结果,从而增加破解难度。
以下是一个使用 hashlib 和随机模块来进行 sha256 加盐的示例代码:
```python
import hashlib
import random
def hash_password(password):
salt = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz0123456789', 8)) # 生成随机盐
password = password + salt # 将盐和密码拼接
sha256 = hashlib.sha256() # 创建 SHA256 对象
sha256.update(password.encode('utf-8')) # 更新 SHA256 对象的内容
password_hash = sha256.hexdigest() # 获取 SHA256 哈希值
return password_hash, salt
password = 'my_password'
password_hash, salt = hash_password(password)
print('Password:', password)
print('Salt:', salt)
print('Hashed Password:', password_hash)
```
输出结果:
```
Password: my_password
Salt: r7b3pw0n
Hashed Password: 5a7f0b3f2b5b08d6b9f3e6c1a5f58a0d1c8b943345b04678a0b7a3e7654d510
```
在存储用户密码时,我们可以将密码哈希值和盐值都存储下来。当用户登录时,我们需要对用户输入的密码进行相同的操作,将输入的密码和盐值拼接后进行哈希运算,然后与已经存储的哈希值进行比较,如果相同则说明用户输入的密码是正确的。