python凯撒密码加密解密
时间: 2023-05-27 10:06:23 浏览: 272
Python 安全与密码 -凯撒密码的加密与解密.pdf
凯撒密码是一种最简单的加密算法,它的原理是将明文中的每个字母按照一定的规则进行位移,从而得到密文。具体来说,就是将每个字母往后移动k个位置,k为加密密钥。
下面是Python实现凯撒密码加密解密的代码:
```python
def caesar_encrypt(plaintext, key):
"""
凯撒密码加密函数
:param plaintext: 明文
:param key: 密钥,即位移量
:return: 密文
"""
ciphertext = ''
for char in plaintext:
if char.isalpha(): # 如果是字母,进行加密
if char.isupper():
ciphertext += chr((ord(char) - 65 + key) % 26 + 65)
else:
ciphertext += chr((ord(char) - 97 + key) % 26 + 97)
else: # 如果不是字母,直接添加
ciphertext += char
return ciphertext
def caesar_decrypt(ciphertext, key):
"""
凯撒密码解密函数
:param ciphertext: 密文
:param key: 密钥,即位移量
:return: 明文
"""
plaintext = ''
for char in ciphertext:
if char.isalpha(): # 如果是字母,进行解密
if char.isupper():
plaintext += chr((ord(char) - 65 - key) % 26 + 65)
else:
plaintext += chr((ord(char) - 97 - key) % 26 + 97)
else: # 如果不是字母,直接添加
plaintext += char
return plaintext
```
使用示例:
```python
# 加密
plaintext = 'hello, world!'
key = 3
ciphertext = caesar_encrypt(plaintext, key)
print(ciphertext) # 输出:khoor, zruog!
# 解密
key = 3
plaintext = caesar_decrypt(ciphertext, key)
print(plaintext) # 输出:hello, world!
```
注意:凯撒密码加密解密都是用同一个函数实现的,只需要传入不同的参数即可。为了方便起见,这里将加密和解密放在了同一个文件中,实际使用时可以根据需要将它们放在不同的文件里。
阅读全文