凯撒密码明暗文互转python
时间: 2024-03-20 16:37:54 浏览: 62
凯撒密码是一种简单的替换密码,它通过将文中的每个字母按照一定的偏移量进行替换来生成密文。在Python中,可以使用以下代码实现凯撒密码的明暗文互转:
```python
def caesar_encrypt(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha():
ascii_offset = ord('A') if char.isupper() else ord('a')
encrypted_char = chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
encrypted_text += encrypted_char
else:
encrypted_text += char
return encrypted_text
def caesar_decrypt(text, shift):
decrypted_text = ""
for char in text:
if char.isalpha():
ascii_offset = ord('A') if char.isupper() else ord('a')
decrypted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
decrypted_text += decrypted_char
else:
decrypted_text += char
return decrypted_text
# 示例
plaintext = "Hello, World!"
shift = 3
ciphertext = caesar_encrypt(plaintext, shift)
print("密文:", ciphertext)
decrypted_text = caesar_decrypt(ciphertext, shift)
print("解密后的明文:", decrypted_text)
```
这段代码定义了两个函数,`caesar_encrypt`用于加密明文,`caesar_decrypt`用于解密密文。其中,`text`参数表示要加密或解密的文本,`shift`参数表示偏移量。在示例中,明文为"Hello, World!",偏移量为3,加密后的密文为"Khoor, Zruog!",解密后的明文为"Hello, World!"。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)