加密无法正常工作

时间:2017-11-25 15:32:49

标签: python encryption cryptography

我有这段加密代码。

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”应该已经消失了。我对此非常陌生,想知道或理解解决方案的确切运作方式。

谢谢

2 个答案:

答案 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返回字节。实际的低级解密不知道编码,它可以解密可以是字符串,它可以是图像等。

由呼叫者提供适合于加密/解密数据的编码。

由于调用者将加密包装在您编写的函数中,该函数提供正确的编码,在这种情况下,加密时字符串为字节,解密后字节返回字符串。