[解決済み] HMAC-SHA256 署名計算のためのアルゴリズム
2023-07-05 13:27:20
質問
私はHMAC-SHA256アルゴリズムを使って署名を作成しようとしており、これは私のコードです。 私はUS ASCIIエンコーディングを使用しています。
final Charset asciiCs = Charset.forName("US-ASCII");
final Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
final SecretKeySpec secret_key = new javax.crypto.spec.SecretKeySpec(asciiCs.encode("key").array(), "HmacSHA256");
sha256_HMAC.init(secret_key);
final byte[] mac_data = sha256_HMAC.doFinal(asciiCs.encode("The quick brown fox jumps over the lazy dog").array());
String result = "";
for (final byte element : mac_data)
{
result += Integer.toString((element & 0xff) + 0x100, 16).substring(1);
}
System.out.println("Result:[" + result + "]");
上記のコードから得られる結果は、以下の通りです。
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
これはwikiに掲載されているものと同じです。
HMAC_SHA256("key", "The quick brown fox jumps over the lazy dog") = 0x f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
ただし
は
0x
.
私は私がすべて正しくやっているかどうか、または私が私のコードを改善することができるかもしれないアイデア/コメントを探しています。
どのように解決するのですか?
0xは、それ以降の文字が16進文字列を表していることを示すだけです。
0x1A == 1Ah == 26 == 1A
というわけで、0xは出力される形式を明確にするためだけのもので、気にする必要はないです。
関連
-
NullPointerException - java.lang.
-
型に解決できない エラー解決
-
Javaジェネリックを1つの記事で
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
java send https request prompt java.security.cert.について。
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java の double データ型における 0.0 と -0.0 の問題
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
強制型変換について
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
eclipse にリソースリーク:'in' が閉じない
-
Java の double データ型における 0.0 と -0.0 の問題
-
[解決済み] Javaでバイト配列から16進文字列に変換する方法は?