单表代换密码 对所有的明文字母都用一个固定的代换进行加密。加密过程中,是从明文字母表到密文字母表的一一 映射。例:恺撒(Caesar)密码。写一个python的代码
时间: 2024-10-17 12:14:54 浏览: 47
单表代换密码,也称为简单替换密码,是一种最基础的加密技术,其中每个明文字符都被固定地替换为密文字符。以著名的凯撒密码(Caesar Cipher)为例,它是通过将明文字母按照字母表向后(或向前)移动固定位数来实现的。下面是一个简单的Python代码实现:
```python
def caesar_cipher_encrypt(message, shift):
encrypted_message = ""
for char in message:
if char.isalpha(): # 只处理字母字符
if char.islower():
encrypted_message += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
encrypted_message += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
encrypted_message += char # 非字母字符保持不变
return encrypted_message
def caesar_cipher_decrypt(encrypted_message, shift):
return caesar_cipher_encrypt(encrypted_message, -shift) # 解密时需反向移动位数
# 示例
message = "Hello, World!"
shift = 3 # 移位数量
encrypted_message = caesar_cipher_encrypt(message, shift)
print("Encrypted Message:", encrypted_message)
decrypted_message = caesar_cipher_decrypt(encrypted_message, shift)
print("Decrypted Message:", decrypted_message)
```
这个代码首先定义了两个函数:`caesar_cipher_encrypt`用于加密,`caesar_cipher_decrypt`用于解密。加密时,它会检查每个字符是否为字母,并将其转换为小写或大写(取决于原始字符),然后按照指定的位移进行加密。非字母字符则直接保留。
阅读全文