请用python设计一个加密和解密程序,将数字密码加密为等长的英文字母(映射关系自己定义),解密程序则可以将加密后的密码还原为相应数字。
时间: 2024-11-05 10:25:01 浏览: 13
python实现凯撒密码加密解密
5星 · 资源好评率100%
为了实现这个简单的加密和解密程序,你可以按照以下步骤操作:
1. **定义映射关系**:创建一个字典,将数字映射到对应的英文字母。例如,你可以选择A对应1,B对应2,直到Z对应26。这将是你的加密和解密的核心。
```python
# 创建一个数字到字母的映射字典
mapping = {str(i): chr(65 + i - 1) for i in range(1, 27)} # A-Z
```
2. **加密函数**:定义`encrypt()`函数,它接受一个密码作为输入,遍历每个字符,如果遇到数字就替换为相应的字母,否则保持不变。
```python
def encrypt(password):
encrypted_password = "" # 定义空字符串用于存储加密后的密码
for char in password:
if char.isdigit(): # 如果是数字
encrypted_password += mapping[char] # 加密
else:
encrypted_password += char # 非数字字符保持原样
return encrypted_password # 返回加密后的密码
```
3. **解密函数**:定义`decrypt()`函数,它会逆向操作加密过程,从加密的字母中找到对应的数字。
```python
def decrypt(encrypted_password):
decrypted_password = ""
for char in encrypted_password:
if char.isalpha(): # 如果是字母
index = ord(char) - 65 # 字符编码减去A的ASCII码得到数字索引
decrypted_password += str(index) # 解密
else:
decrypted_password += char # 非字母字符保持原样
return decrypted_password # 返回解密后的密码
```
现在你可以用这两个函数对一个数字密码进行加密和解密。例如:
```python
password = "1234"
encrypted = encrypt(password)
decrypted = decrypt(encrypted)
print(f"Original password: {password}")
print(f"Encrypted: {encrypted}")
print(f"Decrypted: {decrypted}")
```
请注意,实际应用中可能需要考虑更复杂的加密算法以提高安全性。这里只是一个基础示例。
阅读全文