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中文本加密和解密的基础知识。根据不同的需求,你可以选择适合的加密算法进行文本加密和解密的实现。
