質問編集履歴

4

コードの修正

2018/11/07 08:02

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,137 @@
1
1
  HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
2
2
 
3
+ ハッシュ化する前に文字をバイト配列へ変換すると思います。
4
+
3
- ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字(シグネチャ)は違いますよね。
5
+ ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するバイト配列は違いますよね。
4
6
 
5
7
  「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆうことですか?逆にそれ以外のエンコードに使用する文字コードでエンコードした場合は間違え。といった感じでしょうか?
8
+
9
+
10
+
11
+ 具体的にいうとこんな感じです。
12
+
13
+ textの文字コードはUnicodeです。
14
+
15
+ ハッシュ化に用いるバイト配列の生成方法としてただしいのはUnicodeエンコードで生成されたバイト配列でそれ以外は間違いとゆうことなのでしょうか。
16
+
17
+
18
+
19
+ ```
20
+
21
+
22
+
23
+ string text = "あ";
24
+
25
+
26
+
27
+ //ASCII エンコード
28
+
29
+ byte[] data = System.Text.Encoding.ASCII.GetBytes(text);
30
+
31
+ foreach (var d in data) {
32
+
33
+ Console.WriteLine(d);
34
+
35
+ }
36
+
37
+ Console.WriteLine("");
38
+
39
+ //Shift-JISエンコード
40
+
41
+ data =System.Text.Encoding.GetEncoding("shift_jis").GetBytes(text);
42
+
43
+ foreach (var d in data)
44
+
45
+ {
46
+
47
+ Console.WriteLine(d);
48
+
49
+ }
50
+
51
+ Console.WriteLine("");
52
+
53
+ //EUCエンコード
54
+
55
+ data = System.Text.Encoding.GetEncoding("euc-jp").GetBytes(text);
56
+
57
+ foreach (var d in data)
58
+
59
+ {
60
+
61
+ Console.WriteLine(d);
62
+
63
+ }
64
+
65
+ Console.WriteLine("");
66
+
67
+ //unicodeエンコード
68
+
69
+ data = System.Text.Encoding.Unicode.GetBytes(text);
70
+
71
+ foreach (var d in data)
72
+
73
+ {
74
+
75
+ Console.WriteLine(d);
76
+
77
+ }
78
+
79
+ Console.WriteLine("");
80
+
81
+ //UTF8エンコード
82
+
83
+ data = System.Text.Encoding.UTF8.GetBytes(text);
84
+
85
+ foreach (var d in data)
86
+
87
+ {
88
+
89
+ Console.WriteLine(d);
90
+
91
+ }
92
+
93
+ Console.ReadKey();
94
+
95
+ ```
96
+
97
+ 出力
98
+
99
+
100
+
101
+ ```
102
+
103
+ 63
104
+
105
+
106
+
107
+ 130
108
+
109
+ 160
110
+
111
+
112
+
113
+ 164
114
+
115
+ 162
116
+
117
+
118
+
119
+ 66
120
+
121
+ 48
122
+
123
+
124
+
125
+ 227
126
+
127
+ 129
128
+
129
+ 130
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+ ```

3

勘違いの訂正

2018/11/07 08:02

投稿

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

2

勘違いの修正

2018/11/07 07:44

投稿

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

1

勘違いの訂正

2018/11/07 07:36

投稿

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