是aes…的超集Rijndael
# from py3rijndael import RijndaelCbc,Pkcs7Padding 如果你更喜欢原生python,但是慢很多
import clr # pythonnet
from System.Security.Cryptography import Rijndael, CryptoStream, CryptoStreamMode, PaddingMode
from System.IO import MemoryStream, StreamWriter, StreamReader
key = b"0BFAB106A793DCA7F06789412023ED45"
iv = b"D9AB89AA56F5673001127802CDEF00BC"
def decrypt_file(inPath, outPath):
with open(inPath, 'rb') as f:
data = f.read()
# crypt = RijndaelCbc(key,iv,Pkcs7Padding(32),32)
# ddata = crypt.decrypt(data)
crypt = Rijndael.Create()
crypt.BlockSize = 256
crypt.Key = key
crypt.IV = iv
crypt.Padding = PaddingMode.PKCS7
decrypt = crypt.CreateDecryptor()
inByte = MemoryStream(data)
cryptByte = CryptoStream(inByte, decrypt, CryptoStreamMode.Read)
outByte = MemoryStream()
cryptByte.CopyTo(outByte)
ddata = bytes(outByte.ToArray())
with open(outPath, 'wb') as f:
f.write(ddata)