業務で使用しているソースを見ていて、
自分でも調べて処理の内容を記載したのですが少しわからないので
ご教授をお願いいたします。
java
1// ①:ランダムな値を取得? 2String hash = BCrypt.gensalt(); 3 4// ②:MessageDigestインスタンスを取得 5MessageDigest md = MessageDigest.getInstance("SHA-256"); 6 7// ③:①で取得したbyte型に変換して、メッセージダイジェスト(ハッシュ値)を更新? 8md.update(hash.getBytes()); 9 10// ④:ハッシュ値を計算して、byte配列を返す 11byte[] digest = md.digest(); 12// ⑤:格納用のStringBuilderを生成 13StringBuilder str = new StringBuilder(); 14// ⑥:byteの配列を16進数に変換して格納ループ 15for (byte b : digest) { 16 String hex = String.format("%02x", b); 17 str.append(hex); 18 }
上記のソースなのですが、
ユニークでランダムな値を作成するのに使用しているメソッドとの事なのですが、
特に1~3の部分の処理がいまいちわからないです。
1については調べてみてもよくわからず、
ランダムな値を返してるのかな?といったレベルの認識です。
2でハッシュ値を作成して、3でさらに1で取得した値を付け加えて
ハッシュ値を更新しているという認識でいいのでしょうか?
そしてこれは100%ユニークな値になるのでしょうか?
ご教授よろしくお願いいたします。
またここの説明間違ってるよって部分があったら、
指摘をお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/12 01:39 編集