gpt4 book ai didi

python - 如何在Python中解密我知道其模式的字符串?

转载 作者:行者123 更新时间:2023-11-28 21:35:55 27 4
gpt4 key购买 nike

我正在研究一个由 5 个整数组成的加密字符串,并且我弄清楚了它的模式,我尝试编写一个像这样的 python OrderedDict :

od = OrderedDict([('0', '9'), ('1', '2'), ('2', '0'), ('3', '7'), ('4', '1'), 
('5', '3'), ('6', '8'), ('7', '6'), ('8', '5'), ('9', '4')])

所以我写了一些代码来解密字符串。
“加密”字符串就是一个示例。

def replace_all(text, dic):
for k, v in dic.items():
text = text.replace(k, v)
return text


encrypted = '14012'
decrypted = replace_all(encrypted, od)

我只是无法得到正确的答案,字符串 14012 应该解密为 21920,但我只得到 01400

我应该如何处理我的代码才能获得正确的字符串?

最佳答案

您逐一迭代字典项,因此 '1' 被翻译为 '2',然后是 '2'例如,被转换为 '0',这就是结果以 '0' 而不是 '2' 开头的原因。

您可以使用str.translate()方法替代:

table = ''.join(od.get(chr(i), chr(i)) for i in range(256))
print(encrypted.translate(table))

输出:

21920

顺便说一下,在这种情况下不需要使用 OrderedDict,因为顺序在构建翻译表时并不重要。

关于python - 如何在Python中解密我知道其模式的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com