Caeser密码是一种简单的替换密码,它通过将字母按照一定的偏移量进行替换来加密消息。在Python中,如果你的Caeser密码只打印字符串的最后一个字母,可能是因为你在代码中只处理了最后一个字符。
要解决这个问题,你需要遍历整个字符串,并对每个字符进行加密或解密操作。下面是一个示例代码,展示了如何实现Caeser密码的加密和解密功能:
def caeser_encrypt(message, shift):
encrypted_message = ""
for char in message:
if char.isalpha():
ascii_offset = ord('a') if char.islower() else ord('A')
encrypted_char = chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
encrypted_message += encrypted_char
else:
encrypted_message += char
return encrypted_message
def caeser_decrypt(encrypted_message, shift):
decrypted_message = ""
for char in encrypted_message:
if char.isalpha():
ascii_offset = ord('a') if char.islower() else ord('A')
decrypted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
decrypted_message += decrypted_char
else:
decrypted_message += char
return decrypted_message
message = "Hello, World!"
shift = 3
encrypted_message = caeser_encrypt(message, shift)
print("Encrypted message:", encrypted_message)
decrypted_message = caeser_decrypt(encrypted_message, shift)
print("Decrypted message:", decrypted_message)
在上述代码中,caeser_encrypt
函数接受一个消息和一个偏移量,将消息中的每个字母按照偏移量进行加密,并返回加密后的消息。caeser_decrypt
函数接受一个加密后的消息和一个偏移量,将加密后的消息中的每个字母按照偏移量进行解密,并返回解密后的消息。
这样,你就可以正确地加密和解密Caeser密码了。记得在使用Caeser密码时,要保持加密和解密时使用的偏移量一致,才能正确还原原始消息。
领取专属 10元无门槛券
手把手带您无忧上云