恺撒加密和解密分别封装在独立的函数里,两个函数处于同一个模块,并放在一个包内。 支持对A-Z、a-z、0-9、标点符号、中文字符等的加解密。 加密后的密文为可见字符。 主文件通过引用加解密函数实现对字符串的加解密。生成代码
时间: 2024-10-04 15:01:45 浏览: 29
在Python中,你可以创建一个名为`cipher.py`的模块,用于封装加密(`encrypt`)和解密(`decrypt`)函数。这里是一个简单的例子:
```python
# cipher.py
import string
def encrypt(text, shift=3):
def caesar_cipher(char, alphabet):
return alphabet[(alphabet.index(char) + shift) % len(alphabet)]
# 定义加密字符集,包含字母、数字、标点和中文字符
all_chars = string.ascii_letters + string.digits + string.punctuation + '中文字符列表'
encrypted_text = ''.join(caesar_cipher(char, all_chars) for char in text)
return encrypted_text
def decrypt(encrypted_text, shift=3):
return encrypt(encrypted_text, -shift)
# 主程序需要导入并使用这个模块
if __name__ == '__main__':
import sys
if len(sys.argv) < 2:
print("请输入要加密或解密的文本")
sys.exit(1)
action = sys.argv[1].lower() # 加密(enc)或解密(dec)
input_text = sys.argv[2] if len(sys.argv) > 2 else "示例输入"
if action == 'enc':
result = encrypt(input_text)
print(f"加密后的密文: {result}")
elif action == 'dec':
result = decrypt(input_text)
print(f"解密后的原文: {result}")
else:
print("无效的操作,请选择'enc'或'dec'")
```
要在主文件中使用这些功能,你需要按照以下步骤操作:
1. 导入`cipher`模块
2. 调用`encrypt`或`decrypt`函数,传入相应的文本和可选的偏移量(shift)
例如,在另一个Python文件(如`main.py`)中:
```python
from cipher import encrypt, decrypt
# 加密示例
encrypted_text = encrypt("Hello, World! 你好,世界!")
print("加密后的密文:", encrypted_text)
# 解密示例
decrypted_text = decrypt(encrypted_text)
print("解密后的原文:", decrypted_text)
```
阅读全文