凯撒密码加密没考虑大写字母的问题,所以用python 写一段完善恺撒密码,实现对英文大小写字母都可以加密的问题
时间: 2024-06-10 09:07:15 浏览: 161
利用python实现凯撒密码加解密功能
好的,非常感谢您的提问。以下是一个简单的 Python 代码实现,它可以完善凯撒密码,使其能够支持加密英文大小写字母:
```python
def encrypt_caesar(plain_text, shift):
cipher_text = ''
for i in plain_text:
if i.isalpha():
if i.islower():
index = (ord(i) - 97 + shift) % 26 + 97
cipher_text += chr(index)
else:
index = (ord(i) - 65 + shift) % 26 + 65
cipher_text += chr(index)
else:
cipher_text += i
return cipher_text
```
这个函数接受两个参数:要加密的明文字符串 `plain_text` 和一个加密的偏移量 `shift`。它会遍历明文字符串中的每个字符,如果是英文字母,则根据其是否大写来确定 ASCII 码的范围,并使用偏移量进行加密。否则,直接将该字符添加到密文字符串中。
您可以按照以下方式调用该函数:
```python
plaintext = 'This is a secret message.'
shift = 3
ciphertext = encrypt_caesar(plaintext, shift)
print(ciphertext)
```
上面的代码将输出:
```
Wklv lv d vhfuhw phvvdjh.
```
这就是使用 Caesar 密码加密后的密文。要解密此消息,请将偏移量变为负数即可。
阅读全文