我建议您使用模运算符来做您想要的。在python中是%字符。在模数数学中。X%Y告诉我们X/Y的余数是多少。例如。27%26是1。用这个你可以得到你想要的包裹。下面是加密单个字符的代码示例def encrypt_character( valToEncrypt, keyVal ):
# Update the character to be our standard Alphabet mapping
# A -> 0; B->1 ... Z -> 25
x = ord(valToEncrypt) - ord('A')
# Perform the Encryption
retVal = ( x + keyVal ) % 26
# Translate back to the standard ASCII mapping of the character
# for display in python and translate it back into a string
retVal = chr(retVal + ord('A'))
return retVal
# end encrypt_character
现在,如果我们在加密算法中输入字符“A”,密钥为13,则得到“N”,如图所示:
^{pr2}$
解密算法非常相似,只是你做减法而不是加法def decrypt_character( valToDecrypt, keyVal ):
# Update the character to be our standard Alphabet mapping
# A -> 0; B->1 ... Z -> 25
x = ord(valToDecrypt) - ord('A')
retVal = ( x - keyVal ) % 26
# Translate back to the standard ASCII mapping of the character
# for display in python and translate it back into a string
retVal = chr(retVal + ord('A'))
return retVal
要加密字符串,可以使用以下函数:
从重新导入子系统
def encrypt_消息(消息,密钥):
#将消息文本转换为包含所有空格和
#删除了标点符号。
明文=sub(r'[^A-Z]','',消息.上())
密文=“”charIndex = 0
# Encrypt the message 1 character at a time
while charIndex < len(plainText):
cipherText += \
encrypt_character( plainText[charIndex], key)
charIndex += 1
return cipherText
此函数可以调用:>>> encrypt_message("HELLO World!", key=23)
'EBIILTLOIA'
解密函数与加密函数非常相似,只是它调用解密实用程序而不是加密实用程序。在