4、使用Python设计一个加密解密程序。要求如下:(1) 加密的过程是先将原字符串逆序, 然后将每个字符转换为其之前的第5个字符。(2) 解密算法和加密算法相反。(3) 检验功能: 输入一个字符串, 要求只能输入字符和数字, 输出其加密后的字符, 并对加密后的密文进行解密。
时间: 2024-10-11 12:18:06 浏览: 23
字符串逆序代码.rar
为了创建一个满足要求的加密解密程序,我们可以定义两个函数:一个负责加密,另一个负责解密。我们将利用切片和字符索引来实现这两个过程。首先,我们编写一个函数 `encrypt()` 进行加密,然后是 `decrypt()` 函数进行解密。最后,我们添加一个检验功能 `check_input()` 来验证用户输入。
```python
def encrypt(s):
reversed_s = s[::-1]
encrypted_s = ''.join(chr(ord(c) - 5 if 'a' <= c <= 'z' or 'A' <= c <= 'Z' else ord(c)) for c in reversed_s)
return encrypted_s
def decrypt(s):
decrypted_s = s[::-1]
return ''.join(chr(ord(c) + 5 if 'a' <= c <= 'z' or 'A' <= c <= 'Z' else ord(c)) for c in decrypted_s)
def check_input(input_str):
if not input_str.isalnum():
print("错误:输入只允许包含字母和数字。")
return False
encrypted_text = encrypt(input_str)
print(f"加密后的文本: {encrypted_text}")
print("解密后的文本: ", decrypt(encrypted_text))
return True
# 示例
input_to_encrypt = "Hello, 123!"
if check_input(input_to_encrypt):
pass
else:
print("测试结束.")
```
在这个程序中,`check_input()` 函数首先检查输入是否只包含字母和数字,如果是则进行加密并显示结果,接着解密并再次显示结果。
阅读全文