Python简单加密

时间:2017-01-24 06:51:32

标签: python encryption

我试图创建一个程序,根据用户给出的密钥或编号对邮件进行加密。因此,例如,键为2的字母C将更改为字母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,并在到达那里时重新开始。因此,例如,它将再次为1而不是27。我对如何设置它感到有些困惑。谢谢。

3 个答案:

答案 0 :(得分:2)

如果我理解你的话,你的单词只包含字符:a-z 如果是这样,你可以替换该行:

encrypt =  ord(ind) + int(numkey)

使用:

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

答案 1 :(得分:0)

您需要模数运算$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'ISO-8859-1', false); 。例如,%提供27 % 26

答案 2 :(得分:0)

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

看起来像这样:

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

如果ord(ind) + int(numkey)的结果是27,% 27会得到0(因此额外的偏移量为1)。