使用Python加密和解密文件的AES算法概述高级加密标准。 是一种对称加密算法,AES只有一个密钥用于加密和解密。
AES加密方式有ECB、CBC、CTR、CFB、OFB五种。
从安全性的角度推荐了CBC加密方法,本文介绍了CBC加密方法的python实现。
CBC加密需要16位密钥和16位iv
Python依赖包Python在Windows上使用pycryptodome模块
python在Linux上使用pycrypto模块
from crypto.cipherimportaesbs=AES.block _ size # 块大小处理文件1 .加密文件defencrypt(iv ) : pad=lambdas : s (bs-len (%bs ) ) (bs-len ) % bs ).encode (' _ u u as ) ) return data 2.解密文件defdecrypt (data,key,iv ) :iflen(data )=bs : return data unpad=lambdas : s [ 03: ]
key:私钥必须是编码的bytes,如utf-8编码
in [3] : key=' password ' in [4] : key.encode (utf-8 ' ) out (4) :b'password'iv3360偏移,该密钥被编码
4 .使用说明pad和unpad分别为填充函数和逆填充函数。 AES加密需要加密文本的长度,因此必须是block_size的倍数