python身份验证加密解密代码
时间: 2024-09-18 17:15:21 浏览: 33
Python中有多种库可用于身份验证和数据加密,比如`hashlib`, `getpass`, `cryptography`等。下面是一个简单的示例,展示了如何使用`bcrypt`库进行密码哈希加密和基本的身份验证:
```python
import bcrypt
# 加密函数
def encrypt_password(password):
salt = bcrypt.gensalt()
hashed_password = bcrypt.hashpw(password.encode('utf-8'), salt)
return hashed_password.decode('utf-8')
# 解密验证函数
def verify_password(hashed_password, user_input):
try:
if bcrypt.checkpw(user_input.encode('utf-8'), hashed_password.encode('utf-8')):
print("Password is correct.")
return True
else:
print("Incorrect password.")
return False
except Exception as e:
print(f"Error during verification: {str(e)}")
return False
# 使用示例
password = "your_password"
hashed_password = encrypt_password(password)
# 用户输入用于验证
input_password = input("Enter your password: ")
if verify_password(hashed_password, input_password):
# 登录成功,做进一步的操作...
else:
# 登录失败
```
在这个例子中,我们首先使用`bcrypt.gensalt()`生成盐值,然后用`bcrypt.hashpw()`将原始密码和盐值结合进行哈希,形成加密后的字符串。验证时,我们使用`bcrypt.checkpw()`检查用户输入是否与已哈希过的密码匹配。