from cryptography.fernet import Fernet
import json
import base64
# 生成并保存密钥
def generate_key():
return Fernet.generate_key()
# 加密字典并返回Base64编码的字符串
def encrypt_dict(data, key):
fernet = Fernet(key)
json_data = json.dumps(data).encode()
encrypted_data = fernet.encrypt(json_data)
# 转换为Base64编码
base64_encoded_data = base64.b64encode(encrypted_data).decode('utf-8')
return base64_encoded_data
# 解密Base64编码的字符串并返回字典
def decrypt_dict(base64_data, key):
fernet = Fernet(key)
# 先解码Base64
encrypted_data = base64.b64decode(base64_data.encode('utf-8'))
decrypted_data = fernet.decrypt(encrypted_data)
return json.loads(decrypted_data)
# 示例
if __name__ == "__main__":
# 生成密钥
key = generate_key()
print(f"密钥: {key.decode()}")
# 要加密的字典
original_dict = {'name': 'Alice', 'age': 30, 'city': 'New York','ok':'123'}
# 加密字典
encrypted_dict = encrypt_dict(original_dict, key)
print(f"加密后的Base64字符串: {encrypted_dict}")
# 解密字典
decrypted_dict = decrypt_dict(encrypted_dict, key)
print(f"解密后的字典: {decrypted_dict}")