Python实现简单加密解密

在信息时代,数据安全至关重要。掌握基本的加密解密技术,不仅能保护个人隐私,还能提升编程技能。本文将带你用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爬虫教程PDF,Python爬虫书PDF

2026年09月02日

32阅读

外国教程python,python编程教学视频

2026年09月02日

27阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

27阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读