Python实现php中openssl_encrypt
时间: 2023-11-05 16:57:13 浏览: 233
可以使用Python的cryptography库来实现类似于PHP中openssl_encrypt的加密功能。下面是一个使用cryptography库实现AES-256-CBC加密的示例代码:
```python
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
def openssl_encrypt(data, key, iv):
aes_cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
encryptor = aes_cipher.encryptor()
padder = padding.PKCS7(algorithms.AES.block_size).padder()
padded_data = padder.update(data) + padder.finalize()
encrypted_data = encryptor.update(padded_data) + encryptor.finalize()
return encrypted_data
```
其中,data是要加密的数据,key是加密密钥,iv是加密使用的初始化向量。示例代码中使用AES-256-CBC加密算法,采用PKCS7填充方式。使用示例:
```python
data = b'Hello, world!'
key = b'0123456789abcdef0123456789abcdef'
iv = b'0123456789abcdef'
encrypted_data = openssl_encrypt(data, key, iv)
print(encrypted_data)
```
注意:加密结果为bytes类型,需要根据具体需求进行格式转换。
阅读全文