我一直在使用一个python库Fernet并用它来加密电子邮件。我的问题是,如果我再次加密同一封电子邮件,它会给出不同的令牌
如果输入(在我的情况下是电子邮件)保持不变,是否有一种方法或替代库可以为我提供相同的输出
我不能使用哈希,因为我们以后需要解密电子邮件
这就是我目前正在做的事情。我们需要两次获得相同的令牌,因为在将新电子邮件插入系统之前,我需要检查其唯一性。另一种方法是首先解密所有电子邮件,这看起来并不理想
f = Fernet(key)
token = f.encrypt(b"xyz@asdfljlsdafjsdalkfj.com")
token
对于指定用途(将密文存储在安全的服务器空间内,密文不会以加密形式离开服务器),可以选择在模式ECB下使用AES(多亏@Artjom B.)
由于ECB模式没有任何随机元素(除了密钥),因此每次运行都会得到相同的[plaintext-key-ciphertext]组合-您可以使用我的实时示例代码测试加密:https://repl.it/@javacrypto/SoPythonAesEcb256StringEncryption
这是输出:
要运行代码,您需要使用外部库Pycryptodome,可在此处获得:https://pypi.org/project/pycryptodome/,此处的文档:https://www.pycryptodome.org/en/latest/src/cipher/aes.html
安全警告以下代码在模式ECB中使用AES算法,在大多数情况下该模式是不安全的
相关问题 更多 >
编程相关推荐