質問編集履歴

4 コードの修正

退会済みユーザー

退会済みユーザー

2018/11/07 17:02  投稿

ハッシュ化と文字コード
HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね。
「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆうことですか?逆にそれ以外のエンコードに使用する文字コードでエンコードした場合は間違え。といった感じでしょうか?
ハッシュ化する前に文字をバイト配列へ変換すると思います。
ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するバイト配列は違いますよね。
「エンコードされる文字列の文字コード」と「エンコードに使用する文字コード」を同じにする必要があるとゆうことですか?逆にそれ以外のエンコードに使用する文字コードでエンコードした場合は間違え。といった感じでしょうか?
具体的にいうとこんな感じです。
textの文字コードはUnicodeです。
ハッシュ化に用いるバイト配列の生成方法としてただしいのはUnicodeエンコードで生成されたバイト配列でそれ以外は間違いとゆうことなのでしょうか。
```
            string text = "あ";
            //ASCII エンコード
            byte[] data = System.Text.Encoding.ASCII.GetBytes(text);
           foreach (var d in data) {
               Console.WriteLine(d);
           }
           Console.WriteLine("");
           //Shift-JISエンコード
           data =System.Text.Encoding.GetEncoding("shift_jis").GetBytes(text);
           foreach (var d in data)
           {
               Console.WriteLine(d);
           }
           Console.WriteLine("");
           //EUCエンコード
           data = System.Text.Encoding.GetEncoding("euc-jp").GetBytes(text);
           foreach (var d in data)
           {
               Console.WriteLine(d);
           }
           Console.WriteLine("");
           //unicodeエンコード
           data = System.Text.Encoding.Unicode.GetBytes(text);
           foreach (var d in data)
           {
               Console.WriteLine(d);
           }
           Console.WriteLine("");
           //UTF8エンコード
           data = System.Text.Encoding.UTF8.GetBytes(text);
           foreach (var d in data)
           {
               Console.WriteLine(d);
           }
           Console.ReadKey();
```
出力
```
63
130
160
164
162
66
48
227
129
130
```
  • ハッシュ

    102 questions

    ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

3 勘違いの訂正

退会済みユーザー

退会済みユーザー

2018/11/07 16:44  投稿

ハッシュ化と文字コード
HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね
ハッシュ化する文字列をどの文字コードでエンコードするかによって生成するハッシュ文字列(シグネチャ)は違いますよね
  • ハッシュ

    102 questions

    ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

2 勘違いの修正

退会済みユーザー

退会済みユーザー

2018/11/07 16:36  投稿

ハッシュ化と文字コード
HMAC-SHA-1やHMAC-SHA-256などのハッシュ化についてです。
また、APIkeyなどで文字コードなどが明記されていない場合など、一般的にどの文字コードを使用するなどはあるのでしょうか。ご存知の方いましたらご教示ください。
  • ハッシュ

    102 questions

    ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

1 勘違いの訂正

退会済みユーザー

退会済みユーザー

2018/11/07 16:34  投稿

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

    102 questions

    ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る