feat: 添加凯撒密码实现示例用于教学目的

实现凯撒加密和解密算法,包含用户交互界面
This commit is contained in:
祀梦
2025-10-27 12:47:44 +08:00
parent a4c6e4d12d
commit 42e02e476c

View File

@@ -0,0 +1,58 @@
#!/usr/bin/env python3
"""
凯撒加密算法示例
一个教学用的凯撒密码实现
"""
def caesar_encrypt(plaintext, shift):
"""凯撒加密函数"""
ciphertext = ""
for char in plaintext:
if char.isalpha():
base = ord('A') if char.isupper() else ord('a')
new_char = chr((ord(char) - base + shift) % 26 + base)
ciphertext += new_char
else:
ciphertext += char
return ciphertext
def caesar_decrypt(ciphertext, shift):
"""凯撒解密函数"""
return caesar_encrypt(ciphertext, -shift)
def main():
"""主函数,用户交互界面"""
print("凯撒密码示例")
while True:
print("\n1.加密\n2.解密\n3.退出")
choice = input("选择: ").strip()
if choice == "1":
text = input("明文: ")
try:
shift = int(input("移位值: "))
result = caesar_encrypt(text, shift)
print(f"密文: {result}")
except ValueError:
print("移位值必须是整数!")
elif choice == "2":
text = input("密文: ")
try:
shift = int(input("移位值: "))
result = caesar_decrypt(text, shift)
print(f"明文: {result}")
except ValueError:
print("移位值必须是整数!")
elif choice == "3":
print("再见!")
break
else:
print("无效选择")
if __name__ == "__main__":
main()