0

私は MD5 と SHA を MessageDigest で勉強しています。これは、MessageDigest を使用して MD5 を実装するクラスのコードです。理解に苦しみます。

したがって、MD5 の「インスタンス」を取得します。それがMD5アルゴリズムだと思いますか?次に、バイトを更新します。なぜこれを行うのですか?次に、変数バイト b を md.digest() で作成しますが、なぜこれを行うのかわかりませんか? 次に、forステートメントを使用してアルゴリズムを実行し、おそらくパディングします(0を追加しますか?)。誰かがもう少しうまく説明できれば、私は感謝します!

   try {
                MessageDigest md = MessageDigest.getInstance("MD5"); // get the
                                                                        // instance
                                                                        // of md5
            md.update(bytes); // get the digest updated
            byte[] b = md.digest(); // calculate the final value
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            message = buf.toString(); // output as strings

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace(); // when certain algorithm is down, output the
                                    // abnormal condition
        }
        return message;
    }
4

1 に答える 1