pythonコードでopensslコマンドと同等の暗号化をしたい

openssl enc -e aes-256-cbc -base64 -iv iv値 -k 暗号鍵 ファイル -in 暗号化前ファイル名 -out 暗号化後ファイル名 -md sha256

上記コマンドと同等のpythonコードを書きたいです

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.primitives import padding from cryptography.hazmat.backends import default_backend from base64 import b64encode def test_enc(): # IVとキーを16進数からバイトに変換 iv = bytes.fromhex(iv値) key = hashlib.sha256(bytes.fromhex(キー)) # ファイルを読み込む with open('before_encrypt.csv', 'rb') as f: data = f.read() # パディング処理 padder = padding.PKCS7(128).padder() padder_data = padder.update(data) + padder.finalize() cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend()) encryptor = cipher.encryptor() # データを暗号化 encrypted_data = encryptor.update(padder_data) + encryptor.finalize() # 暗号化されたデータをBase64エンコードしてファイルに書き込む with open('encrypted.csv', 'wb') as f: f.write(b64encode(encrypted_data))

このようなコードを書いているのですが、暗号化後のファイルの中身がopensslコマンドを実行する場合と全く異なるものになります。

-kオプションと-md sha256によるキーの変換が再現できていないように思われるのですが、なにかお気づきの方がいれば教えていただきたいです。

コメントを投稿

0 コメント