[英]Reversible encryption in python
简短问题:是否有经过验证的强大可逆加密方法(在Python中)?
要求:不需要Python库的第3部分。
应用环境:通过网络传输数据。
我看到了将str.translate()
与键生成表结合使用的方法。 这是表生成函数:
def get_table(key):
m = hashlib.md5()
m.update(key)
s = m.digest()
(a, b) = struct.unpack('<QQ', s)
table = [c for c in string.maketrans('', '')]
for i in xrange(1, 1024):
table.sort(lambda x, y: int(a % (ord(x) + i) - a % (ord(y) + i)))
return ''.join(table)
有关此功能的问题:
提前致谢。
xor密码可以很好地工作(如果您对消息的每个字符与密钥中的对应字符进行按位异或,您可以通过再次对密文与密钥进行异或来再次返回到消息)。
编辑:确切地讲,您如何获取密钥将确定此密码的安全性,但这是一种快速,容易可逆的密码。
EDIT2:具体来说,请参阅Wiki上的这些行,以了解如何使它成为一个安全的密码系统...
“如果密钥是随机的,并且至少与消息一样长,那么XOR密码比消息中存在密钥重复时要安全得多。[3]当密钥流由伪随机数生成器生成时,结果是一个流密码。使用真正随机的密钥,结果是一次性填充,即使在理论上也坚不可摧。”
您可以使用补偿因子制作自己的加密程序。 即 使用ord()将每个字母转换为数字。 使用随机生成的偏移键将其加到数字上。 使用chr()转换回字母
并解密:使用ord()将每个字符转换为数字,然后按偏移键减去,再使用chr()转换回字母,您知道该消息是原始消息。
希望对你有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.