将恺撒加密和解密函数封装在一个类中。主文件通过实例调用类中的加解密方法实现对字符串的加解密。
时间: 2024-10-08 10:27:19 浏览: 47
将凯撒加密和解密功能封装到一个名为`CaesarCipher`的类中,可以按照以下步骤操作:
```python
class CaesarCipher:
def __init__(self, shift):
self.shift = shift
# 加密函数,输入明文字符串和偏移量
def encrypt(self, plaintext):
encrypted_text = ""
for char in plaintext:
if char.isalpha():
shift_amount = self.shift % 26
if char.islower():
new_char_code = ord(char) + shift_amount
encrypted_text += chr(new_char_code % 97 + 97)
else:
new_char_code = ord(char) + shift_amount
encrypted_text += chr(new_char_code % 65 + 65)
else:
encrypted_text += char
return encrypted_text
# 解密函数,输入密文字符串和相同的偏移量
def decrypt(self, ciphertext):
return self.encrypt(ciphertext, -self.shift)
# 主程序示例
def main():
shift = int(input("请输入偏移量:"))
original_text = input("请输入原始文本:")
cipher = CaesarCipher(shift)
encrypted_text = cipher.encrypt(original_text)
print("加密后的文本:", encrypted_text)
decrypted_text = cipher.decrypt(encrypted_text)
print("解密后的文本:", decrypted_text)
if __name__ == "__main__":
main()
```
在这个例子中,`CaesarCipher`类有两个方法:`encrypt`用于加密,`decrypt`用于解密,都接受一个字符串作为参数。主文件通过创建`CaesarCipher`的实例,并调用其加解密方法来实现字符串的加密和解密。
阅读全文