import base64 as b64
from cryptography.fernet import Fernet
def encrypt(data):
key = Fernet.generate_key()
keyb64 = b64.urlsafe_b64encode(key).decode('utf-8')
cipher = Fernet(key)
encd_data = cipher.encrypt(data.encode())
encd_datab64 = b64.urlsafe_b64encode(encd_data).decode('utf-8')
return encd_datab64, keyb64
print('Your data:' + encrypt(input('what to encrypt\n')))
我想要打印出来:
您的代码:(encd_datab64),您的密钥:(keyb64)
在上面的代码中,它创建了一个错误,指出您无法分离元组,但我不知道元组是什么。如果我删除代码的
'Your data:' +
部分,它只会给出加密的数据和文本。
我理解您的要求。看来您想以特定格式打印加密数据和密钥。您可以通过修改 print 语句以包含格式化字符串来实现此目的。这是更新后的代码:
import base64 as b64
from cryptography.fernet import Fernet
def encrypt(data):
key = Fernet.generate_key()
keyb64 = b64.urlsafe_b64encode(key).decode('utf-8')
cipher = Fernet(key)
encd_data = cipher.encrypt(data.encode())
encd_datab64 = b64.urlsafe_b64encode(encd_data).decode('utf-8')
return encd_datab64, keyb64
encrypted_data, key = encrypt(input('Enter data to encrypt: '))
print(f'Your code: {encrypted_data}, your key: {key}')
在此代码中,我使用 f 字符串(格式化字符串)在 print 语句中包含 crypto_data 和 key 的值。这样,它就会以您指定的格式打印所需的输出。