pycharm实现随机输入一段明文密文凯撒密码加密解密
时间: 2023-08-02 07:27:05 浏览: 203
下面是一个使用 PyCharm 实现随机输入一段明文或密文,并进行凯撒密码加密解密的 Python 代码示例:
```python
import random
def caesar_cipher(text, shift, action):
"""
实现凯撒密码加密解密
:param text: 要加密或解密的文本
:param shift: 移位数
:param action: 加密或解密操作,取值为 "encrypt" 或 "decrypt"
:return: 加密或解密后的文本
"""
result = ""
for char in text:
if char.isalpha():
if char.isupper():
result += chr((ord(char) - 65 + shift if action == "encrypt" else ord(char) - 65 - shift) % 26 + 65)
else:
result += chr((ord(char) - 97 + shift if action == "encrypt" else ord(char) - 97 - shift) % 26 + 97)
else:
result += char
return result
# 随机生成一段文本
text = ""
for i in range(random.randint(10, 20)):
text += chr(random.randint(97, 122))
# 随机生成一个移位数
shift_amount = random.randint(1, 25)
# 随机选择加密或解密操作
if random.choice([True, False]):
action = "encrypt"
encrypted_text = caesar_cipher(text, shift_amount, action)
print("明文:", text)
print("加密后的文本:", encrypted_text)
else:
action = "decrypt"
decrypted_text = caesar_cipher(text, shift_amount, action)
print("密文:", text)
print("解密后的文本:", decrypted_text)
```
在上面的代码中,首先使用了 `random` 模块随机生成了一段文本和移位数,然后随机选择加密或解密操作。如果选择加密操作,则调用 `caesar_cipher()` 函数对随机生成的文本进行加密,并输出明文和加密后的文本;如果选择解密操作,则对随机生成的密文进行解密,并输出密文和解密后的文本。
阅读全文