凯撒密码(Caesar Cipher)是一种古老的替代加密技术,也称为移位密码。它是一种单字母替代密码,其中每个字母在字母表中向前或向后移动一个固定数量的位置来加密文本。这个固定的移动数量被称为偏移量或密钥。这里是一个Python示例,演示如何实现凯撒密码的加密和解密:
def caesar_encrypt(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha(): # 仅处理字母字符
is_upper = char.isupper() # 检查字符是否为大写
char = char.lower() # 将字符转换为小写以进行加密
shifted_char = chr(((ord(char) - ord('a') + shift) % 26) + ord('a'))
if is_upper:
shifted_char = shifted_char.upper() # 如果原字符是大写,则将加密后的字符转换为大写
encrypted_text += shifted_char
else:
encrypted_text += char # 对于非字母字符,保持不变
return encrypted_text
def caesar_decrypt(encrypted_text, shift):
decrypted_text = ""
for char in encrypted_text:
if char.isalpha():
is_upper = char.isupper()
char = char.lower()
shifted_char = chr(((ord(char) - ord('a') - shift) % 26) + ord('a'))
if is_upper:
shifted_char = shifted_char.upper()
decrypted_text += shifted_char
else:
decrypted_text += char
return decrypted_text
# 用法示例
text = "Hello, World!"
shift = 3 # 偏移量
encrypted_text = caesar_encrypt(text, shift)
decrypted_text = caesar_decrypt(encrypted_text, shift)
print("原文: " + text)
print("加密后: " + encrypted_text)
print("解密后: " + decrypted_text)
这个示例中,caesar_encrypt 函数用于加密文本,caesar_decrypt 函数用于解密文本。你可以通过更改偏移量来改变加密的强度。这只是一个简单的凯撒密码实现,不够安全,容易受到破解攻击。在实际应用中,你可能需要使用更强大的加密算法。