teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コードの修正

2018/11/07 08:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,69 @@
1
1
  HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
2
+ ハッシュ化する前に文字をバイト配列へ変換すると思います。
2
- ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字(シグネチャ)は違いますよね。
3
+ ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するバイト配列は違いますよね。
3
- 「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆうことですか?逆にそれ以外のエンコードに使用する文字コードでエンコードした場合は間違え。といった感じでしょうか?
4
+ 「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆうことですか?逆にそれ以外のエンコードに使用する文字コードでエンコードした場合は間違え。といった感じでしょうか?
5
+
6
+ 具体的にいうとこんな感じです。
7
+ textの文字コードはUnicodeです。
8
+ ハッシュ化に用いるバイト配列の生成方法としてただしいのはUnicodeエンコードで生成されたバイト配列でそれ以外は間違いとゆうことなのでしょうか。
9
+
10
+ ```
11
+
12
+ string text = "あ";
13
+
14
+ //ASCII エンコード
15
+ byte[] data = System.Text.Encoding.ASCII.GetBytes(text);
16
+ foreach (var d in data) {
17
+ Console.WriteLine(d);
18
+ }
19
+ Console.WriteLine("");
20
+ //Shift-JISエンコード
21
+ data =System.Text.Encoding.GetEncoding("shift_jis").GetBytes(text);
22
+ foreach (var d in data)
23
+ {
24
+ Console.WriteLine(d);
25
+ }
26
+ Console.WriteLine("");
27
+ //EUCエンコード
28
+ data = System.Text.Encoding.GetEncoding("euc-jp").GetBytes(text);
29
+ foreach (var d in data)
30
+ {
31
+ Console.WriteLine(d);
32
+ }
33
+ Console.WriteLine("");
34
+ //unicodeエンコード
35
+ data = System.Text.Encoding.Unicode.GetBytes(text);
36
+ foreach (var d in data)
37
+ {
38
+ Console.WriteLine(d);
39
+ }
40
+ Console.WriteLine("");
41
+ //UTF8エンコード
42
+ data = System.Text.Encoding.UTF8.GetBytes(text);
43
+ foreach (var d in data)
44
+ {
45
+ Console.WriteLine(d);
46
+ }
47
+ Console.ReadKey();
48
+ ```
49
+ 出力
50
+
51
+ ```
52
+ 63
53
+
54
+ 130
55
+ 160
56
+
57
+ 164
58
+ 162
59
+
60
+ 66
61
+ 48
62
+
63
+ 227
64
+ 129
65
+ 130
66
+
67
+
68
+
69
+ ```

3

勘違いの訂正

2018/11/07 08:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,3 @@
1
1
  HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
2
- ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね
2
+ ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね
3
- また、APIkeyなどで文字コードなどが明記されていない場合など、一般的にどの文字コード使用するなどはあるのでしょうか。ご存知方いましたらご教示ください
3
+ 「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆことです?逆にそれ以外エンコードに使用する文字コードでエンコードした場合は間違えといった感じでしょうか?

2

勘違いの修正

2018/11/07 07:44

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,3 @@
1
1
  HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
2
- ハッシュ化する文字列の文字コードによって生成するハッシュ文字列(シグネチャ)は違いますよね?
2
+ ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね?
3
3
  また、APIkeyなどで文字コードなどが明記されていない場合など、一般的にどの文字コードを使用するなどはあるのでしょうか。ご存知の方いましたらご教示ください。

1

勘違いの訂正

2018/11/07 07:36

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,3 @@
1
1
  HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
2
- ハッシュ化する前にキーなどをバイト配列へ変換すると思います。
3
- そのバイト配列のモジコードによって生成するハッシュ文字列(シグネチャ)は違いますよね?
2
+ ハッシュ化する文字列の文字コードによって生成するハッシュ文字列(シグネチャ)は違いますよね?
4
- また、APIkeyなどで文字コードなどが明記されていない場合など、一般的にどの文字コードを使用するなどはあるのでしょうか。
3
+ また、APIkeyなどで文字コードなどが明記されていない場合など、一般的にどの文字コードを使用するなどはあるのでしょうか。ご存知の方いましたらご教示ください。
5
- ご存知の方いましたらご教示ください。