Python简单加密

2024-03-29 10:23:57 发布

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

我试图创建一个程序,根据用户提供的密钥或数字对消息进行加密。例如,字母C和键2会变成字母E。我想用一个保存的字典或序数值来表示这个,但我不确定如何将其限制为26个字母。例如,我现在的代码如下所示:

word = input("Please enter a word")
numkey = input("Please enter a key")

for ind in word:
    encrypt = ord(ind) + int(numkey)
    actual_encrypt = chr(encrypt)

这段代码的问题是,我想将加密值限制为26,并在到达那里后重新开始。例如,它不是27,而是1。我只是有点搞不清楚怎么设置。非常感谢。你知道吗


Tags: 代码用户程序消息input字母密钥数字
3条回答

如果我没听错的话,你的词只包含以下字符:a-z 如果是这样,您可以替换该行:

encrypt =  ord(ind) + int(numkey)

使用:

encrypt = ord('a') + (ord(ind) - ord('a') + int(numkey)) % 26 

如果我正确理解你的问题,解决这个问题的常用方法是使用模运算符“%”。此运算符返回操作数之间整数除法的余数。你知道吗

可能是这样的:

encrypt = ((ord(ind) + int(numkey)) % 27) + 1

如果ord(ind) + int(numkey)的结果是27,% 27结果是0(因此额外的偏移量是1)。你知道吗

你需要模运算,%。例如,27 % 26给出1。你知道吗

相关问题 更多 >