質問編集履歴
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,7 +38,8 @@
|
|
38
38
|
from Crypto.Cipher import AES
|
39
39
|
from base64 import b64encode
|
40
40
|
import hashlib
|
41
|
+
def test_enc():
|
41
|
-
# IVとキーをバイトに変換
|
42
|
+
# IVとキーをバイトに変換
|
42
43
|
iv = bytes.fromhex(iv値)
|
43
44
|
key = hashlib.sha256(キー.encode()).digest()
|
44
45
|
|
@@ -48,7 +49,7 @@
|
|
48
49
|
|
49
50
|
# パディング処理
|
50
51
|
padder = padding.PKCS7(128).padder()
|
51
|
-
|
52
|
+
padder_data = padder.update(data) + padder.finalize()
|
52
53
|
|
53
54
|
cipher = AES.new(key, AES.MODE_CBC, iv)
|
54
55
|
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -33,6 +33,40 @@
|
|
33
33
|
|
34
34
|
```
|
35
35
|
|
36
|
+
ライブラリ変えたパターン
|
37
|
+
```ここに言語を入力
|
38
|
+
from Crypto.Cipher import AES
|
39
|
+
from base64 import b64encode
|
40
|
+
import hashlib
|
41
|
+
# IVとキーをバイトに変換
|
42
|
+
iv = bytes.fromhex(iv値)
|
43
|
+
key = hashlib.sha256(キー.encode()).digest()
|
44
|
+
|
45
|
+
# ファイルの読み込み
|
46
|
+
with open('before_encrypt.csv', 'rb') as f:
|
47
|
+
data = f.read()
|
48
|
+
|
49
|
+
# パディング処理
|
50
|
+
padder = padding.PKCS7(128).padder()
|
51
|
+
padder_data = padder.update(data) + padder.finalize()
|
52
|
+
|
53
|
+
cipher = AES.new(key, AES.MODE_CBC, iv)
|
54
|
+
|
55
|
+
# データを暗号化
|
56
|
+
encrypted_data = cipher.encrypt(padder_data)
|
57
|
+
|
58
|
+
# 暗号化されたデータをBase64エンコードしてファイルに書き込む
|
59
|
+
with open('encrypted.csv', 'wb') as f:
|
60
|
+
f.write(b64encode(encrypted_data))
|
61
|
+
|
62
|
+
```
|
63
|
+
|
36
64
|
このようなコードを書いているのですが、暗号化後のファイルの中身がopensslコマンドを実行する場合と全く異なるものになります。
|
37
65
|
|
66
|
+
例えばaaaaaaaaaとだけ書いた適当なファイルを暗号化してみた結果
|
67
|
+
openssl暗号化→U2FsdGVkX19p4HtziF4MIqmV58VE9860Tc1oyQ2x+oI=
|
68
|
+
コードによる暗号化→OgSvtBFb7lqtEJYWzcpUJA==
|
69
|
+
|
70
|
+
のようになります
|
71
|
+
|
38
72
|
-kオプションと-md sha256によるキーの変換が再現できていないように思われるのですが、なにかお気づきの方がいれば教えていただきたいです。
|