1. 密码学入门:替换密码的本质
在信息安全领域,替换密码是最基础的加密方式之一。它的核心原理很简单:将明文中的每个字母按照特定规则替换为另一个字母。比如把A换成D,B换成E,以此类推。这种加密方式被称为凯撒密码,是古罗马时期朱利斯·凯撒用于军事通信的方法。
现代密码学中,替换密码已经不再安全,但它仍然是理解加密原理的绝佳起点。我最近在教授Python编程课时发现,用代码实现替换密码的加密和解密过程,不仅能学习字符串处理技巧,还能深入理解密码学基础概念。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Python实现基础替换加密
2.1 构建替换规则
我们先从最简单的凯撒移位密码开始。假设我们要实现向右移动3位的加密:
python复制def caesar_encrypt(plaintext, shift=3):
ciphertext = ""
for char in plaintext:
if char.isupper():
ciphertext += chr((ord(char) - 65 + shift) % 26 + 65)
elif char.islower():
ciphertext += chr((ord(char) - 97 + shift) % 26 + 97)
else:
ciphertext += char
return ciphertext
这段代码处理了大小写字母,其他字符保持不变。ord()获取字符的ASCII码,chr()将ASCII码转回字符。模运算(%)确保移位后仍在字母表范围内。
2.2 随机替换密码实现
更通用的替换密码可以使用随机排列的字母表:
python复制import random
def generate_key():
letters = list("abcdefghijklmnopqrstuvwxyz")
random.shuffle(letters)
return dict(zip("abcdefghijklmnopqrstuvwxyz", letters))
def substitution_encrypt(plaint
