欢迎访问宙启技术站
智能推送

使用Python实现简单的加密解密算法

发布时间:2023-12-04 11:31:22

Python可以使用多种加密解密算法来保护数据的安全性。本文将介绍一种简单的加密解密算法-凯撒密码,并提供使用例子。

凯撒密码是一种替换加密的方法,它通过将每个字母替换为字母表中固定位置的字母来实现加密。加密时,将明文中的每个字母向后移动固定的位数,解密时,将密文中的每个字母向前移动同样的位数。例如,将明文“abc”进行凯撒加密,假设位移数为1,则得到的密文为“bcd”。

现在我们来实现一个凯撒加密解密的Python函数,并提供相应的使用例子:

# 凯撒加密函数
def caesar_encrypt(text, shift):
    encrypted_text = ''
    for char in text:
        if char.isalpha():  # 只加密字母
            if char.isupper():
                encrypted_text += chr((ord(char) - 65 + shift) % 26 + 65)  # 大写字母的ASCII码范围为65-90
            else:
                encrypted_text += chr((ord(char) - 97 + shift) % 26 + 97)  # 小写字母的ASCII码范围为97-122
        else:
            encrypted_text += char
    return encrypted_text

# 凯撒解密函数
def caesar_decrypt(text, shift):
    decrypted_text = ''
    for char in text:
        if char.isalpha():  # 只解密字母
            if char.isupper():
                decrypted_text += chr((ord(char) - 65 - shift) % 26 + 65)
            else:
                decrypted_text += chr((ord(char) - 97 - shift) % 26 + 97)
        else:
            decrypted_text += char
    return decrypted_text

# 使用例子
plaintext = "Hello, World!"  # 明文
shift = 3  # 位移数
encrypted_text = caesar_encrypt(plaintext, shift)  # 加密
decrypted_text = caesar_decrypt(encrypted_text, shift)  # 解密

print("明文:", plaintext)
print("密文:", encrypted_text)
print("解密后的明文:", decrypted_text)

运行以上代码,将得到以下输出:

明文: Hello, World!
密文: Khoor, Zruog!
解密后的明文: Hello, World!

通过这个例子,我们可以看到明文经过加密后得到了密文,再经过解密后又得到了原始的明文。这说明凯撒密码是一种可逆的替换加密算法。

需要注意的是,凯撒密码的安全性较低,易受到暴力破解和频率分析等攻击方式的影响。因此,实际应用中更常使用基于更复杂数学原理的加密算法,如AES、RSA等。