encryption凯撒算法
时间: 2023-11-21 15:56:56 浏览: 47
凯撒密码是一种最简单的密码算法,它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。以下是一个简单的Python实现:
```python
def caesar_cipher(text, shift):
result = ""
# 遍历明文中的每个字符
for i in range(len(text)):
char = text[i]
# 如果字符是大写字母
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65)
# 如果字符是小写字母
elif char.islower():
result += chr((ord(char) + shift - 97) % 26 + 97)
# 如果字符不是字母
else:
result += char
return result
```
其中,text是要加密的明文,shift是偏移量。这个函数会返回加密后的密文。以下是一个示例:
```python
text = "hello world"
shift = 3
encrypted_text = caesar_cipher(text, shift)
print("加密后的密文:", encrypted_text)
```
输出:
```
加密后的密文: khoor zruog
```
解密的方法与加密的方法类似,只需要将偏移量改为负数即可。以下是一个简单的Python实现:
```python
def caesar_decipher(text, shift):
result = ""
# 遍历密文中的每个字符
for i in range(len(text)):
char = text[i]
# 如果字符是大写字母
if char.isupper():
result += chr((ord(char) - shift - 65) % 26 + 65)
# 如果字符是小写字母
elif char.islower():
result += chr((ord(char) - shift - 97) % 26 + 97)
# 如果字符不是字母
else:
result += char
return result
```
以下是一个示例:
```python
text = "khoor zruog"
shift = 3
decrypted_text = caesar_decipher(text, shift)
print("解密后的明文:", decrypted_text)
```
输出:
```
解密后的明文: hello world
```