恺撒加密和解密分别封装在独立的函数里,两个函数处于同一个模块,并放在一个包内。 支持对A-Z、a-z、0-9、标点符号、中文字符等的加解密。 加密后的密文为可见字符。 主文件通过引用加解密函数实现对字符串的加解密。
时间: 2024-10-08 11:10:59 浏览: 33
php凯撒密码加密和解密---适合加密英文
5星 · 资源好评率100%
在Python中,如果你想要创建一个包含加密和解密功能的模块,你可以按照以下步骤操作:
首先,在`ciphers`包下的一个名为`caesar_cipher.py`的文件中,创建两个函数:`encrypt`和`decrypt`。这两个函数会接受一个字符串和一个密钥作为输入,然后返回对应的加密或解密结果。例如:
```python
import string
def encrypt(text, key):
alphabet = string.ascii_letters + string.digits + string.punctuation + '中文字符'
encrypted_text = ''.join(alphabet[(alphabet.index(char) + key) % len(alphabet)] for char in text)
return encrypted_text
def decrypt(encrypted_text, key):
return encrypt(encrypted_text, -key)
# 如果需要支持中文字符,可以使用第三方库如pinyin,这里仅做示例
# 导入必要的转换工具,如果中文字符不在标准ASCII范围内
from pinyin import lazy_pinyin
def chinese_decrypt(encrypted_text, key):
# 对于中文字符,先转为拼音,再加密,然后还原成汉字
decrypted_pinyin = decrypt(lazy_pinyin(encrypted_text), key)
return ''.join(''.join(chr(ord(pinyin)+ord(key)%256) for pinyin in phrase) for phrase in decrypted_pinyin)
```
主文件(比如`main.py`)可以通过导入这个包并调用`encrypt`和`decrypt`函数来加密和解密字符串:
```python
from ciphers.caesar_cipher import encrypt, decrypt, chinese_decrypt
input_string = "Hello, 世界!"
key = 3
encrypted = encrypt(input_string, key)
print(f"加密后:{encrypted}")
decrypted = decrypt(encrypted, key)
print(f"解密后:{decrypted}")
# 如果有中文字符
chinese_encrypted = chinese_encrypt(input_string, key)
print(f"中文加密后:{chinese_encrypted}")
chinese_decrypted = chinese_decrypt(chinese_encrypted, key)
print(f"中文解密后:{chinese_decrypted}")
```
阅读全文