.凯撒加密:将用户输入的一段文字(明文)变成密文输出。加密规则:明文中的每个字母替换为其后面第5个字母,其余字符不变
时间: 2024-03-23 09:38:10 浏览: 21
好的,您的问题是凯撒加密的实现。我可以帮您写一个Python函数来实现凯撒加密,代码如下:
```python
def caesar_cipher(text):
cipher_text = ''
for letter in text:
if letter.isalpha():
shifted_letter = chr((ord(letter) - 97 + 5) % 26 + 97)
cipher_text += shifted_letter
else:
cipher_text += letter
return cipher_text
```
这个函数接受一个字符串参数,返回加密后的字符串。对于字符串中的每个字母,我们使用 ASCII 码将其转换为数字,再进行加密操作,最后将加密后的数字转换回字母。对于非字母字符,直接把它加入到密文中。
相关问题
python凯撒加密:将用户输入的一段文字(明文)变成密文输出。加密规则:明文中的每个字母替换为其后面第5个字母,其余字符不变。
好的,下面是Python实现凯撒加密的代码:
```python
def caesar_cipher(plain_text):
"""
将明文中的每个字母替换为其后面第5个字母,其余字符不变。
"""
cipher_text = ""
for char in plain_text:
if char.isalpha():
# 将字母转换为ASCII码,加上5,再转换回字母
cipher_char = chr((ord(char) - 97 + 5) % 26 + 97)
cipher_text += cipher_char
else:
cipher_text += char
return cipher_text
```
这个函数可以将输入的明文进行加密,返回加密后的密文。它首先遍历明文中的每个字符,如果是字母,则将其替换为后面第5个字母。这里使用了ASCII码进行转换,先将字母转换为ASCII码,加上5,再转换回字母即可。如果不是字母,则直接将其添加到密文中。最后返回加密后的密文。
pycharm 随机输入一段明文加密或者密文解密实现凯撒密码
好的,您可以使用如下代码实现凯撒密码的加解密:
```python
import random
def caesar_cipher(text, shift, decrypt=False):
if decrypt:
shift = 26 - shift
result = ""
for char in text:
if char.isalpha():
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65)
else:
result += chr((ord(char) + shift - 97) % 26 + 97)
else:
result += char
return result
text = input("请输入明文或密文:")
shift = random.randint(1, 25) # 随机生成一个密钥
encrypted = caesar_cipher(text, shift)
decrypted = caesar_cipher(encrypted, shift, decrypt=True)
print("加密后的密文为:", encrypted)
print("解密后的明文为:", decrypted)
```
其中,`caesar_cipher` 函数实现了凯撒密码的加解密,`text` 表示输入的明文或密文,`shift` 表示密钥,`decrypt` 表示是否为解密操作。
您可以运行该代码,输入明文或密文,程序会随机生成一个密钥并进行加密和解密操作,并输出加密后的密文和解密后的明文。