Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python获得一致的加密结果?_Python_Python 3.x_Encryption_Fernet - Fatal编程技术网

如何使用Python获得一致的加密结果?

如何使用Python获得一致的加密结果?,python,python-3.x,encryption,fernet,Python,Python 3.x,Encryption,Fernet,我希望每次为相同的消息生成一致的加密结果。目前,我得到了不同的加密结果 我正在做这样的事情 从cryptography.fernet导入fernet key=Fernet.generate_key() f=Fernet(键) token=f.encrypt(b“一条真正的秘密消息,不适合窥探者使用。”) 打印(令牌) #b'gaaaabfh2ghofbq_MUqdTAs7n_2;Pz2cOkDeYuMbDOGFa6NSL3Ld_seLIPOs4ztvTW888Y_1CSrFlk_mioSe-rp

我希望每次为相同的消息生成一致的加密结果。目前,我得到了不同的加密结果

我正在做这样的事情

从cryptography.fernet导入fernet
key=Fernet.generate_key()
f=Fernet(键)
token=f.encrypt(b“一条真正的秘密消息,不适合窥探者使用。”)
打印(令牌)
#b'gaaaabfh2ghofbq_MUqdTAs7n_2;Pz2cOkDeYuMbDOGFa6NSL3Ld_seLIPOs4ztvTW888Y_1CSrFlk_mioSe-rp5tvhfxfwfwhytilq4ldttxww0aqhjsmr5vpewqcej_5oEWmciV'
token=f.encrypt(b“一条真正的秘密消息,不适合窥探者使用。”)
打印(令牌)
#b'GAAAABFH2GH56XZIC644KRB0MEXUTTUATTUAETFGH3EWDBLPK40BIRUZ7IQCGBVQ49ULRFFSHsiWL9TDYL2TAYZGWMQHFUCRA0ZO4QQTTKP364UY6TCWCWCNF2JSLC0HGPJCX5BQD5GHPN0'
token=f.encrypt(b“一条真正的秘密消息,不适合窥探者使用。”)
打印(令牌)
#b'GAAAABFH2GHO82P0YCC9KAGQNLO0QRPM2SQBCWEIVFX45IP2IZLTYB0BFZPUBU1NAYZ1AQ6S4DOASU7VMQZRD8BBE9HICFJXWPSBKMZVWKF(BLZZNqoB4EdeOE0x5NQGB-aEctzPfEZ'

我希望每次输入字符串都是相同的标记,结果应该是相同的。另外,如果有更好更简单的插件,请推荐。

并非所有令牌都必须相同,因为Fernet的
加密模块的代码是:

def encrypt(self, data):
    return self.encrypt_at_time(data, int(time.time()))
fernet.py中


这意味着加密取决于时间。因此,令牌彼此不同。

请添加所有相关的
import
语句和打印输出。加密的一个常见要求是,对于相同的输入,结果并不总是相同的。据称,一些与安全有关的废话。因此,也许你需要使用一种安全性相对较低的方案,也许从技术上讲,这可能被称为编码,但请不要将其描述为/声称为加密,因为它不是。@barny也许你是对的,但此时我总是需要相同字符串的相同结果,mysql中使用了salt。我希望这不是我使用的任何服务的密码。使用单向散列,然后与新字符串的相同散列进行比较-无需解码-这仍然/也不是加密,因为散列是不可逆的(根据定义,散列就是这样做的)那么,你能给出其他解决方案吗?你能问问自己,真的有必要保持代币不变吗。因为若你们这样做,你们所做的是编码,而不是加密“我想加密电子邮件地址,之后当用户输入电子邮件和密码时,他应该登录,但在加密的情况下不会登录。所以,这就是为什么我想保持结果不变,以便在数据库中进行比较考虑比较散列。很难回到真实的电子邮件地址。这可能会有帮助。