<p>这是我不久前写的东西。有效:)</p>
<pre><code>import base64
from Crypto.Cipher import AES
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import padding, serialization
class AESCipher2(object):
def __init__(self, key, vector):
self.key = key
self.init_vector = vector
def encrypt(self, payload, hashed=False):
padder = padding.PKCS7(128).padder()
padded_payload = padder.update(payload)
padded_payload += padder.finalize()
cipher = AES.new(self.key, AES.MODE_CBC, self.init_vector)
if hashed:
return base64.b64encode(cipher.encrypt(padded_payload))
else:
return cipher.encrypt(padded_payload)
def decrypt(self, payload, hashed=False):
unpadder = padding.PKCS7(128).unpadder()
if hashed:
payload = base64.b64decode(payload)
cipher = AES.new(self.key, AES.MODE_CBC, self.init_vector)
decrypted_message = cipher.decrypt(payload)
unpadded_payload = unpadder.update(decrypted_message)
unpadded_payload = unpadded_payload + unpadder.finalize()
return unpadded_payload
</code></pre>