回答編集履歴

1

コメントに基づいて、回答に追記しました

2016/02/08 10:07

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -3,3 +3,35 @@
3
3
 
4
4
 
5
5
  今回はどのような処理を実現しようとしていますか? 暗号化? それとも 改ざん防止?
6
+
7
+
8
+
9
+ ---
10
+
11
+ 2016年2月8日 追記
12
+
13
+
14
+
15
+ コメントありがとうございます。sha256ダイジェストを受信したデータの検証用途に使われるのですね。その場合は、コメントいただいた通りの方法で処理すればOKです。(まとめると、以下のようになります)
16
+
17
+
18
+
19
+ **前提:**
20
+
21
+ - 相手側(送信側)と受信側が、bbbという「秘密の情報」を事前に共有している
22
+
23
+ - 送信されるデータは、aaaというデータ自体と、検証用のsha256ダイジェスト
24
+
25
+
26
+
27
+ **手順:**
28
+
29
+ 1. 相手側が、aaaとbbbを元に、sha256ダイジェストを算出する。
30
+
31
+ ```digest = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), aaa, bbb)```
32
+
33
+ 2. 相手側が、aaaとダイジェストを受信側に送信する。
34
+
35
+ 3. 受信側では、相手側と全く同じに、aaaとbbbからsha256ダイジェストを算出する。
36
+
37
+ 4. 算出したダイジェストが、送られてきたダイジェストと一致すれば検証OK。