[解決済み] Javaで、バイト配列を先頭のゼロを維持したまま16進数の文字列に変換するにはどうしたらいいですか?[重複しています]。
2022-04-23 08:21:20
質問内容
md5ハッシュを作成するためのJavaコードのサンプルを作っているところです。ある部分は、結果をバイトから16進数の文字列に変換しています。
byte messageDigest[] = algorithm.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0;i<messageDigest.length;i++) {
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
}
しかし、toHexStringはどうやら先頭のゼロを落としてしまうようなので、なかなかうまくいきません。そこで、バイト配列から16進文字列へ、先頭のゼロを維持したまま移動する最も簡単な方法は何でしょうか?
どのように解決するのですか?
で何桁まで出力されるかを確認するのが簡単な方法です。
Integer.toHexString()
で、必要なら各バイトに先頭の0を追加する。このようなものです。
public static String toHexString(byte[] bytes) {
StringBuilder hexString = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
関連
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] JavaでInputStreamをバイト配列に変換する
-
[解決済み] Pythonで16進文字列をintに変換する
-
[解決済み] Javaでバイト配列から16進文字列に変換する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Javaクラスローダーにソースコードから潜り込む
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
[解決済み] JavaでMD5ハッシュを生成するにはどうすればよいですか?
-
[解決済み] Javaでバイト配列から16進文字列に変換する方法は?
-
[解決済み】Androidで色の整数を16進文字列に変換する方法は?