利用python 输入文本,根据文本长度生成长度相同,取值在[-15,15]范围内的“密码本”,文本内容根据对应位置密码本的数值在字母表上进行左移(密码本数值为负)或者右移(密码本数值为正),输出加密后的文本内容(注意空格的处理)
时间: 2024-02-09 16:12:56 浏览: 173
基于python的GPT2中文文本生成模型项目实现
5星 · 资源好评率100%
以下是利用Python实现该功能的代码:
```python
import string
import random
def generate_password(length):
"""生成长度为length的密码本,取值在[-15, 15]范围内"""
password = []
for i in range(length):
password.append(random.randint(-15, 15))
return password
def encrypt_text(text, password):
"""根据密码本加密文本"""
encrypted_text = ''
for i in range(len(text)):
if text[i] == ' ': # 处理空格
encrypted_text += ' '
else:
index = string.ascii_lowercase.index(text[i].lower())
shift = password[i % len(password)]
shifted_index = (index + shift) % 26
shifted_char = string.ascii_lowercase[shifted_index]
if text[i].isupper(): # 处理大写字母
encrypted_text += shifted_char.upper()
else:
encrypted_text += shifted_char
return encrypted_text
# 输入文本
text = input("请输入要加密的文本:")
# 生成密码本
password = generate_password(len(text))
# 加密文本
encrypted_text = encrypt_text(text, password)
# 输出加密后的文本
print("加密后的文本为:", encrypted_text)
```
使用示例:
```
请输入要加密的文本:Hello, World!
加密后的文本为:Grryi, Jwqfm!
```
阅读全文