凯撒密码python
时间: 2023-07-25 07:15:01 浏览: 75
凯撒密码是一种简单的加密算法,它将明文中的每个字符按照一个固定的偏移量进行移位,从而得到密文。在Python中,可以使用以下代码实现凯撒密码的加密和解密:
```python
def caesar_encrypt(text, shift):
"""凯撒密码加密"""
result = ""
for char in text:
# 如果字符是字母,则进行移位操作
if char.isalpha():
# 将字符转换为ASCII码,并计算移位后的ASCII码
ascii_code = ord(char) + shift
# 根据字母大小写进行判断
if char.isupper():
# 大写字母的ASCII码范围是65~90
ascii_code = (ascii_code - 65) % 26 + 65
else:
# 小写字母的ASCII码范围是97~122
ascii_code = (ascii_code - 97) % 26 + 97
# 将移位后的ASCII码转换为字符,并添加到结果字符串中
result += chr(ascii_code)
else:
# 如果字符不是字母,则直接添加到结果字符串中
result += char
return result
def caesar_decrypt(text, shift):
"""凯撒密码解密"""
# 将移位量转换为负数,以进行解密操作
shift = -shift
# 调用加密函数即可得到解密结果
return caesar_encrypt(text, shift)
```
这里的`caesar_encrypt`函数接收两个参数,分别是明文和移位量。它遍历明文中的每个字符,如果该字符是字母,则计算移位后的ASCII码,并将其转换为字符添加到结果字符串中;如果该字符不是字母,则直接添加到结果字符串中。`caesar_decrypt`函数与`caesar_encrypt`函数类似,只是需要将移位量取反,以进行解密操作。
示例代码如下:
```python
text = "Hello, World!"
shift = 3
# 加密
encrypted_text = caesar_encrypt(text, shift)
print("密文:", encrypted_text)
# 解密
decrypted_text = caesar_decrypt(encrypted_text, shift)
print("解密后的明文:", decrypted_text)
```
输出结果为:
```
密文: Khoor, Zruog!
解密后的明文: Hello, World!
```