完成如下“加密器”设计。采用被加密的字符与密码进行“异或”运算。(异或运算符) 请输入被加(解)密字符串:abcdefghijklmnopqrstuvwxyz 请输入密钥字符串:123456789 加(解)密后的字符串为:abcdefghijklmnopqrstuvwxyz 退出:0其他键继续
时间: 2024-02-15 11:01:49 浏览: 89
以下是一个 Python 的控制台程序的示例实现,可以实现您的要求:
```
def xor_cipher(string, key):
binary_string = ''.join([bin(ord(char))[2:].zfill(8) for char in string])
binary_key = ''.join([bin(ord(char))[2:].zfill(8) for char in key])
result = ''.join([str(int(binary_string[i]) ^ int(binary_key[i % len(binary_key)])) for i in range(len(binary_string))])
return ''.join([chr(int(result[i:i+8], 2)) for i in range(0, len(result), 8)])
while True:
print("请选择操作:")
print("1. 加密")
print("2. 解密")
print("0. 退出")
choice = input().strip()
if choice == "1":
print("请输入被加密字符串:")
plaintext = input().strip()
print("请输入密钥:")
key = input().strip()
ciphertext = xor_cipher(plaintext, key)
print("加密后的字符串为:", ciphertext)
elif choice == "2":
print("请输入被解密字符串:")
ciphertext = input().strip()
print("请输入密钥:")
key = input().strip()
plaintext = xor_cipher(ciphertext, key)
print("解密后的字符串为:", plaintext)
elif choice == "0":
break
else:
print("无效的选择,请重新选择。")
```
您可以在控制台中运行这个程序,按照提示进行操作。它将根据您的选择对字符串进行加密或解密,并输出结果。当您输入 0 时,程序将退出。
阅读全文