Python中如何进行加密和解密?代码举例讲解

在Python中,我们可以使用以下方式进行加密和解密:

1. 对称加密:

  • 使用相同的密钥加密和解密。常用算法有AES,DES等。
  • Python使用OpenSSL库实现对称加密。
    例如:
from OpenSSL import crypto

key = b'123456'  # 密钥

# 加密
cipher = crypto.Cipher(crypto.AES(key), crypto.MODE_CBC, iv)
encryptor = cipher.encryptor()
ct = encryptor.update(b'mysecret')

# 解密 
decipher = crypto.Cipher(crypto.AES(key), crypto.MODE_CBC, iv)
decryptor = decipher.decryptor()
pt = decryptor.update(ct)
print(pt)  # b'mysecret'

2. 非对称加密:

  • 使用公钥加密,私钥解密。常用算法有RSA,ECC等。
  • Python使用OpenSSL库实现非对称加密。
    例如:
from OpenSSL import crypto

# 生成密钥对
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)

# 获取公钥字符串
public_key = crypto.dump_publickey(crypto.FILETYPE_PEM, key) 

# 加密
cipher = crypto.Cipher_PKCS1_OAEP.new(key)
ct = cipher.encrypt(b'password')

# 解密 
key = crypto.load_pem_public_key(public_key)
cipher = crypto.Cipher_PKCS1_OAEP.new(key)
pt = cipher.decrypt(ct)
print(pt)  # b'password'

OpenSSL是Python中最流行的加密库,掌握它可以帮助我们的程序实现强大的加密功能。对称加密和非对称加密各有优点,我们需要根据具体需要选择合适的加密算法和工具。