你好,我对编码非常陌生,正在研究凯撒密码。但是对于这段代码`
def encoder():
user_string=str(input('Enter text to encrypt'))
shift=int(input('Enter number to shift letters by'))
for i in range(len(user_string)):
char=user_string[i]
value=ord(char)
new_value=value+shift
new_value=chr(new_value)
print(new_value,end='')
def decoder():
user_string=str(input('Enter text to decrypt'))
shift=int(input('Enter number to shift letters by'))
for i in range(len(user_string)):
char=user_string[i]
value=ord(char)
new_value=value-shift
new_value=chr(new_value)
print(new_value,end='')
当我插入像 Hello world 这样的东西时,它会返回正确的结果,但用 # 替换空格。当我将加密结果插入解码器时,它返回完全没有空格的字符串。两者之间的唯一区别应该是使用 newvalue = value + shift 进行编码,然后使用 newvalue = value-shift 进行解密。有人可以帮助我理解为什么要这样做以及如何解决加密中的 # 和解密中没有空格的问题。谢谢。编辑我使用的移位值是 3,确切的字符串是用于加密的 Hello world 和用于解密的相同字符串的编码版本。
繁星淼淼
相关分类