使用python队列,设计算法编写程序完成任务,输入一条消息,使用改进的凯撒密码对 消息进行加密和解密。
时间: 2024-09-15 16:02:18 浏览: 53
基于Python的凯撒密码加密和解密源码.zip
凯撒密码是一种替换加密技术,基本思想是将明文中的每个字母按照固定的偏移量向字母表移动,实现加密。我们可以创建一个队列来处理消息的加密和解密过程。首先,我们将明文加入队列,然后依次取出每个字符并进行加密或解密操作。这里是一个简单的Python程序实现:
```python
class CaesarCipher:
def __init__(self, shift=3):
self.shift = shift
self.queue = []
def encrypt(self, message):
for char in message:
if char.isalpha():
new_char = chr(((ord(char.lower()) - ord('a') + self.shift) % 26) + ord('a'))
self.queue.append(new_char)
else:
self.queue.append(char)
def decrypt(self):
self.encrypt("".join(self.queue)) # 先加密整个队列,因为解密就是反向加密
decrypted_message = ""
for char in self.queue:
decrypted_message += chr(((ord(char.lower()) - ord('a') - self.shift) % 26) + ord('a'))
return decrypted_message
# 示例使用
cipher = CaesarCipher()
message = "Hello, World!"
encrypted = cipher.encrypt(message)
decrypted = cipher.decrypt()
print(f"Original message: {message}")
print(f"Ciphertext: {encrypted}")
print(f"Decrypted message: {decrypted}")
```
在这个程序中,`encrypt`方法将输入的消息中的每个字母加密,并添加到队列中。`decrypt`方法先加密整个队列,然后再解密,恢复原始消息。
阅读全文