2.凯撒加密的编程逻辑 加密公式: f(a)=(a+N) mod 26 解密公式: f(a)=(a+(26-N)) mod 26 其中N代表的是位移数,也可以算是k; 3.凯撒加密的算法实现用完整代码实现
时间: 2024-11-27 13:15:51 浏览: 7
常见加密算法讲解.ppt
4星 · 用户满意度95%
凯撒加密(Caesar Cipher),也称为移位密码,是一种简单的替换式加密技术。其基本思想是将明文中的每个字母按照固定的偏移量(例如N=3)在其字母表中向右移动位置。以下是Python语言的一个简单实现:
```python
def caesar_encrypt(plaintext, shift):
encrypted_text = ""
for char in plaintext:
if char.isalpha(): # 判断是否为字母字符
shift_amount = shift % 26 # 防止超出A-Z或a-z范围
if char.islower():
new_char = chr(((ord(char) - ord('a') + shift_amount) % 26) + ord('a'))
else:
new_char = chr(((ord(char) - ord('A') + shift_amount) % 26) + ord('A'))
else:
new_char = char # 非字母字符保持不变
encrypted_text += new_char
return encrypted_text
def caesar_decrypt(ciphertext, shift):
return caesar_encrypt(ciphertext, 26 - shift)
# 示例
plaintext = "Hello, World!"
shift = 3
encrypted_text = caesar_encrypt(plaintext, shift)
decrypted_text = caesar_decrypt(encrypted_text, shift)
print("Original text:", plaintext)
print("Encrypted text:", encrypted_text)
print("Decrypted text:", decrypted_text)
```
在这个例子中,`caesar_encrypt`函数用于加密文本,`caesar_decrypt`函数用于解密文本。注意,因为加密时会用到`(a+N) mod 26`,所以解密时需要用到`(a+26-N)`这个逆过程。
阅读全文