从键盘输入一段文字,采用循环移位法(例如将 a->c,b->d,>b)进行加密后输出,然后再还原为原内容输
时间: 2024-03-07 13:50:01 浏览: 93
DS28E01-100-C-code.zip_28E01_ds28e01-100_ds28e01加密芯片_ds28e01芯片代码
5星 · 资源好评率100%
好的,我来回答你的问题。以下是实现循环移位加密和解密的代码示例:
```python
def encrypt(text, shift):
# 定义加密函数
result = ''
for char in text:
# 对于每个字符进行循环移位加密
if char.isalpha():
# 只对字母进行加密
ascii_code = ord(char) + shift
if char.islower():
# 对小写字母进行处理
if ascii_code > ord('z'):
ascii_code -= 26
elif ascii_code < ord('a'):
ascii_code += 26
else:
# 对大写字母进行处理
if ascii_code > ord('Z'):
ascii_code -= 26
elif ascii_code < ord('A'):
ascii_code += 26
result += chr(ascii_code)
else:
# 对于非字母字符直接拼接
result += char
return result
def decrypt(text, shift):
# 定义解密函数
return encrypt(text, -shift)
# 测试加密和解密函数
text = input('请输入要加密的文本:')
shift = int(input('请输入移位数:'))
encrypted_text = encrypt(text, shift)
print('加密后的文本为:', encrypted_text)
decrypted_text = decrypt(encrypted_text, shift)
print('解密后的文本为:', decrypted_text)
```
这段代码中,我们定义了 `encrypt` 和 `decrypt` 两个函数,分别用于加密和解密。其中,加密函数通过循环移位的方式对每个字母进行加密,而解密函数则是通过反向移位的方式进行解密。在加密和解密的过程中,我们需要注意字母的大小写和循环移位的边界问题。
希望这个代码示例能够帮助你解决问题。如果还有其他问题,可以继续提问。
阅读全文