我有这段加密代码。
from cryptography.fernet import Fernet
key = Fernet.generate_key()
f = Fernet(key)
token = f.encrypt(b"something cool")
k = f.decrypt(token)
print(k) `
这是输出
b'something cool'
根据网站上的例子,“b”应该已经消失了。我对此非常陌生,想知道或理解解决方案的确切运作方式。
谢谢
答案 0 :(得分:1)
'b'表示字节。因此,不是使用字符串加密算法实际上使用字节。我的经验是,你给了一个库(str / bytes / array)它应该给你回复,Fernet正在做什么。我只是将字节转换回字符串2017-11-25T23:22:25.301992880+08:00 container kill 61ea1f10c98e2462f496f9048dcc6b45e536d3f7ba14747f7f22b96afb2db60d (image=alpine, name=sad_wiles, signal=15)
2017-11-25T23:22:35.302560688+08:00 container kill 61ea1f10c98e2462f496f9048dcc6b45e536d3f7ba14747f7f22b96afb2db60d (image=alpine, name=sad_wiles, signal=9)
2017-11-25T23:22:35.328791538+08:00 container die 61ea1f10c98e2462f496f9048dcc6b45e536d3f7ba14747f7f22b96afb2db60d (exitCode=137, image=alpine, name=sad_wiles)
2017-11-25T23:22:35.547890765+08:00 network disconnect 3b36d7a71af5a43f0ee3cb95c159514a6d5a02d0d5d8cf903f51d619d6973b35 (container=61ea1f10c98e2462f496f9048dcc6b45e536d3f7ba14747f7f22b96afb2db60d, name=bridge, type=bridge)
2017-11-25T23:22:35.647073922+08:00 container stop 61ea1f10c98e2462f496f9048dcc6b45e536d3f7ba14747f7f22b96afb2db60d (image=alpine, name=sad_wiles)
答案 1 :(得分:0)
加密函数正在做他们应该做的事情:字节输入和字节输出。
加密和加密使用字节,而不是字符串或其他编码,decrypt
返回字节。实际的低级解密不知道编码,它可以解密可以是字符串,它可以是图像等。
由呼叫者提供适合于加密/解密数据的编码。
由于调用者将加密包装在您编写的函数中,该函数提供正确的编码,在这种情况下,加密时字符串为字节,解密后字节返回字符串。