回答編集履歴

1

修正、追記

2023/11/20 07:17

投稿

bsdfan
bsdfan

スコア4605

test CHANGED
@@ -7,14 +7,17 @@
7
7
  ざっくり書くと、openssl は暗号化するとき、
8
8
  コマンドオプションから -k で与えたパスフレーズと、中で生成した乱数列 (Salt) から、
9
9
  ハッシュアルゴリズムを通して暗号化に使う key と iv を計算します。
10
+ (鍵導出関数)
10
11
 
11
12
  Saltは暗号化の出力に埋め込まれているので(今回のでは 8-15バイト)、復号の時にも同じアルゴリズムでkey, ivを計算することができます。
12
13
 
13
- 今回は iv は指定しているので、keyだけを計算すればいいのではないでしょうか
14
+ 今回は iv は指定しているので、keyだけを計算すればいいのではないでしょうか
15
+ (通常は iv も鍵導出関数で作成されたものを使うことが多いと思います)
16
+
14
17
  ```python
15
18
  # 暗号鍵とIVをセットアップ
16
19
  salt = encrypted_data[8:16]
17
- key = hashlib.sha256(キー.encode() + salt).digetst()
20
+ key = hashlib.sha256(キー.encode() + salt).digest()
18
21
  iv = bytes.fromhex(iv値)
19
22
 
20
23
  # 暗号文本体