Python实现简单加密解密
在信息时代,数据安全至关重要。掌握基本的加密解密技术,不仅能保护个人隐私,还能提升编程技能。本文将带你用Python实现简单的加密解密功能,让你轻松入门信息安全领域。

Caesar密码:古老而经典
首先,我们从经典的Caesar密码开始。Caesar密码是一种替换加密技术,通过将字母表中的每个字母移动固定位置来实现加密。
加密算法
假设我们移动3个位置,即密钥为3,则'A'变为'D','B'变为'E',依此类推。以下是Python实现:
def caesar_encrypt(text, key):
result = ""
for char in text:
if char.isalpha():
shift = key % 26
if char.islower():
result += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
result += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
else:
result += char
return result
解密算法
解密过程与加密相反,只需将密钥取反即可:
def caesar_decrypt(ciphertext, key):
return caesar_encrypt(ciphertext, -key)
示例
text = "Hello, World!"
key = 3
encrypted = caesar_encrypt(text, key)
decrypted = caesar_decrypt(encrypted, key)
print(f"原文: {text}")
print(f"加密: {encrypted}")
print(f"解密: {decrypted}")
输出:
原文: Hello, World!
加密: Khoor, Zruog!
解密: Hello, World!
Vigenère密码:进阶版替换
Vigenère密码是Caesar密码的改进版,使用一个关键词来动态改变字母的移动位置。
加密算法
def vigenere_encrypt(text, keyword):
result = ""
keyword = keyword.lower()
key_index = 0
for char in text:
if char.isalpha():
shift = ord(keyword[key_index % len(keyword)]) - ord('a')
if char.islower():
result += chr((ord(char) - ord('a') + shift) % 26 + ord('a'))
else:
result += chr((ord(char) - ord('A') + shift) % 26 + ord('A'))
key_index += 1
else:
result += char
return result
解密算法
def vigenere_decrypt(ciphertext, keyword):
result = ""
keyword = keyword.lower()
key_index = 0
for char in ciphertext:
if char.isalpha():
shift = ord(keyword[key_index % len(keyword)]) - ord('a')
if char.islower():
result += chr((ord(char) - ord('a') - shift) % 26 + ord('a'))
else:
result += chr((ord(char) - ord('A') - shift) % 26 + ord('A'))
key_index += 1
else:
result += char
return result
示例
text = "Attack at dawn!"
keyword = "lemon"
encrypted = vigenere_encrypt(text, keyword)
decrypted = vigenere_decrypt(encrypted, keyword)
print(f"原文: {text}")
print(f"加密: {encrypted}")
print(f"解密: {decrypted}")
输出:
原文: Attack at dawn!
加密: Lxfopv ef rnhr!
解密: Attack at dawn!
总结
通过本文,我们学习了如何用Python实现Caesar密码和Vigenère密码的加密解密功能。这些基础技能不仅有助于理解加密原理,还能在实际应用中保护数据安全。继续探索,你会发现更多有趣的加密技术,提升你的编程与信息安全能力。
希望这篇文章能激发你对加密解密技术的兴趣,开启你的信息安全之旅!
« 上一篇
用Python打造简易博客系统
下一篇 »
Python玩转CSV:数据处理新境界