如何将字符串加密为相同大小的字符串是Python



我有大约500个字符长的字符串,我想加密它们,使结果字符串具有相同的长度(或只是略有不同)。我需要双向加密和解密使用另一个"秘密"字符串双方都知道。它不需要非常安全,我更喜欢更快的解决方案。

从这里的帖子:用Python加密字符串

使用http://code.google.com/p/keyczar/

crypter = Crypter.Read("/path/to/your/keys")
ciphertext = crypter.Encrypt("Secret message")

如果要保留长度,则需要使用流密码

注意,双方都需要知道密钥(secret)和初始化向量(不是secret,但必须是唯一的)。

如果没有不同的IV,重用相同的密钥是不安全的,因此您需要以某种方式通信新的IV,这有效地延长了您的加密包。

此外,你真的需要考虑重放攻击——如果有人拦截你的消息,然后一次又一次地发送会发生什么。

以下是RC4的简单示例,使用pycrypto,不使用IV (RC4不支持):

import Crypto.Cipher.ARC4
plaintext = "x" * 13
c1 = Crypto.Cipher.ARC4.new(key="1")
ciphertext = c.encrypt(plaintext)
assert len(ciphertext) == len(plaintext)
c2 = Crypto.Cipher.ARC4.new(key="1")
result = c2.descrypt(ciphertext)
assert result == plaintext

相关内容

  • 没有找到相关文章

最新更新