python设计一个加密和解密程序,将数字密码加密为等长的英文字母(映射关系自己定义),解密程序则可以将加密后的密码还原为相应数字。
时间: 2024-11-05 21:24:53 浏览: 14
要实现一个简单的数字到字母的加密和解密程序,我们可以使用Python字典来创建一个映射关系,其中数字对应特定的字母。这里我们将数字从0到25(共26个)映射到小写英文字母a到z。解密过程则是反向操作。
首先,我们需要创建一个加密和解密的映射字典:
```python
# 创建映射字典
mapping_dict = {i: chr((i + 97) % 26) for i in range(26)} # a-z 的映射
reverse_mapping_dict = {v: k for k, v in mapping_dict.items()} # z-a 的映射
def encrypt(text):
encrypted_text = ""
for char in text:
if char.isdigit():
num = int(char)
encrypted_text += mapping_dict[num]
else:
encrypted_text += char
return encrypted_text
def decrypt(encrypted_text):
decrypted_text = ""
for char in encrypted_text:
if char.isalpha():
index = ord(char.lower()) - 97 # 字母a的位置
decrypted_text += str(reverse_mapping_dict[index])
else:
decrypted_text += char
return decrypted_text
```
**加密示例:**
```python
plaintext = "12345"
encrypted_text = encrypt(plaintext)
print(f"Encrypted text: {encrypted_text}")
```
**解密示例:**
```python
encrypted_text = "dghjkl"
decrypted_text = decrypt(encrypted_text)
print(f"Decrypted text: {decrypted_text}")
```
请注意,这种方法并不安全,因为它使用了一个固定的简单映射,对于更复杂的加密需求,应该考虑使用更高级的加密算法。
阅读全文