gpt4 book ai didi

python - 从前一个(移位的)字符种子的凯撒密码

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:02 26 4
gpt4 key购买 nike

为了好玩,我尝试对字符串运行凯撒密码,其中每个字符都被字符串中的前一个字符移位。第一个字符显然没有移位并用于移位第二个字符,第二个字符用作第三个字符的种子等

编码似乎按预期工作;另一方面解码...

key = "a"
word = key + "shop"

print(word)

coded = ""
for i, val in enumerate(word[1:]):
coded += (chr(((ord(word[i]) + ord(val) - 97) % 26) + 97))

print(key + coded)
encoded = key + coded

decoded = ""
for i, val in enumerate(encoded[1:]):
decoded += chr(((ord(encoded[i]) - ord(val) - 97) % 26) + 97)

print(key + decoded)

我的数学似乎(在天真的眼中)是正确的。编码是否有一些我不知道的不允许反转的属性?

使用上述输入的示例输出:

ashop
alsow
amqbp

显然我希望 amqbp 成为 ashop。移动 -97 无济于事(甚至不知道为什么会这样)。

我在这里错过了什么?

最佳答案

您的编码循环似乎不正确。我希望 S 被 A 移动为 T。但你的输出是 L。也许尝试编码 za,这应该导致 za 看看你可能哪里出错了。作为一个猜测,看起来问题是你正在使用字符代码的模数而不是字母表中的字符索引。例如。对于 a,您最终会执行 97 % 26 而不是 0 % 26

关于python - 从前一个(移位的)字符种子的凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51231901/

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