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

Python实现文本加密和解密

发布时间:2023-12-04 16:22:28

在Python中实现文本加密和解密可以使用各种加密算法,例如Caesar密码、AES密码、RSA密码等。下面以Caesar密码和AES密码为例,分别演示文本加密和解密的实现,并提供使用示例。

1. Caesar密码加密和解密:

Caesar密码是一种最简单的密码加密方法,它通过将字母表中的每个字母向后移动指定的位数来加密文本。加密和解密过程是互逆的,即加密过程中的位移量和解密过程中的位移量相同。

下面是Python实现Caesar密码加密和解密的示例代码:

def caesar_encrypt(text, shift):
    encrypted_text = ""
    for char in text:
        if char.isalpha():
            if char.isupper():
                encrypted_char = chr((ord(char) - 65 + shift) % 26 + 65)
            else:
                encrypted_char = chr((ord(char) - 97 + shift) % 26 + 97)
        else:
            encrypted_char = char
        encrypted_text += encrypted_char
    return encrypted_text

def caesar_decrypt(encrypted_text, shift):
    decrypted_text = ""
    for char in encrypted_text:
        if char.isalpha():
            if char.isupper():
                decrypted_char = chr((ord(char) - 65 - shift) % 26 + 65)
            else:
                decrypted_char = chr((ord(char) - 97 - shift) % 26 + 97)
        else:
            decrypted_char = char
        decrypted_text += decrypted_char
    return decrypted_text

# 示例使用:
text = "Hello, World!"
shift = 3
encrypted_text = caesar_encrypt(text, shift)
decrypted_text = caesar_decrypt(encrypted_text, shift)

print("加密后: " + encrypted_text)
print("解密后: " + decrypted_text)

输出结果为:

加密后: Khoor, Zruog!
解密后: Hello, World!

2. AES密码加密和解密:

AES(Advanced Encryption Standard)密码是一种对称加密算法,它可以对任意长度的数据进行加密和解密。AES密码使用相同的密钥进行加密和解密,因此密钥的保密性非常重要。

下面是Python使用cryptography库实现AES密码加密和解密的示例代码:

from cryptography.fernet import Fernet

def aes_encrypt(text, key):
    cipher_suite = Fernet(key)
    encrypted_text = cipher_suite.encrypt(text.encode())
    return encrypted_text

def aes_decrypt(encrypted_text, key):
    cipher_suite = Fernet(key)
    decrypted_text = cipher_suite.decrypt(encrypted_text)
    return decrypted_text.decode()

# 示例使用:
text = "Hello, World!"
key = Fernet.generate_key()

encrypted_text = aes_encrypt(text, key)
decrypted_text = aes_decrypt(encrypted_text, key)

print("加密后: " + encrypted_text.decode())
print("解密后: " + decrypted_text)

输出结果为:

加密后: gAAAAABgMo6hrQ6JPqxHhw-ZQFiJTB1m-u6pADmQ_qfu3FA1I07Kg9deEtdA7PjdHF-xtV4aNdH0-Xu-FqEJPjR3c1wvfMGWyg==
解密后: Hello, World!

通过这两个例子,你可以掌握Python中文本加密和解密的基础知识。根据不同的需求,你可以选择适合的加密算法进行文本加密和解密的实现。