理解加密程序中的逻辑/数学所需的建议

2024-09-30 06:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

userPhrase = input('Enter a single word phrase to be encrypted: ') 
userPhrase = userPhrase.lower() 
key = int(input('Enter a key: ')) 
encryptedPhrase = '' 

for character in userPhrase: 
    x = ord(character) - 97
    x += key
    x = x % 26
    encryptedPhrase += chr(x + 97)

print('Encrypted phrase is ' + encryptedPhrase) 

我在上面写了一个简单的加密程序,主要是根据在线指南编写的,但是我读过的所有材料都没有充分解释为什么加密字符的ASCII值被a(97)的ASCII值减去/减少。正如这句话:

x = ord(character) - 97

任何解释都很好,提前谢谢


Tags: tokeyinputasciibelowerencryptedword
1条回答
网友
1楼 · 发布于 2024-09-30 06:25:07

在ASCII中,小写字母a-z从点ord('a') == 97开始。因此,ord(character) - 97a-z映射到整数范围0...25

您的加密是凯撒密码,然后将该范围向右移动值key,由于x = x % 26而环绕。例如,如果key是5,0映射到520映射到2521映射到0,等等

将修改后的字母表转换回ASCII字符,需要为ord('a')添加回代码点,因此chr(x + 97)

相关问题 更多 >

    热门问题