为以上代码生成加密和解密的验证主函数代码
时间: 2024-10-23 22:04:30 浏览: 17
当然,为了让你更好地理解,我会创建一个验证主函数,包含加密和解密功能,以及一些输入提示和错误处理。假设我们有一个用户输入的字符串需要加密并显示结果,然后再尝试解密回原文进行验证。
```python
from cryptography.fernet import Fernet
import base64
import getpass
def main():
# 获取用户的秘钥输入,由于这是一个演示,我们在这里使用随机密码,实际应用会更安全
key = Fernet.generate_key()
cipher_suite = Fernet(key)
try:
# 用户输入待加密的明文
user_input = input("请输入一段明文进行加密: ")
# 对明文进行加密
encrypted_text = cipher_suite.encrypt(user_input.encode()) # 注意:使用encode()是因为Fernet加密的是bytes
# 显示加密后的文本(Base64编码以便于展示)
encoded_encrypted_text = base64.b64encode(encrypted_text).decode('utf-8')
print(f"加密后的文本: {encoded_encrypted_text}")
# 让用户手动输入解密所需的信息(这里直接提供,实际应用应保密)
decoded_key = base64.b64decode(key)
decryption_cipher = Fernet(decoded_key)
# 尝试解密
decrypted_text = decryption_cipher.decrypt(encoded_encrypted_text.encode()).decode()
if decrypted_text == user_input:
print("解密成功,原始内容:", decrypted_text)
else:
print("解密失败,检查输入是否正确")
except Exception as e:
print(f"错误发生:{str(e)}")
if __name__ == "__main__":
main()
```
在这个例子中,用户输入的明文会先被加密,然后展示经过Base64编码后的结果。接着,程序尝试使用同样的秘钥进行解密,并对比解密后的文本和原始输入,确认是否匹配。
阅读全文