0

MessageDigest クラスを使用して、SHA1 または MD5 を使用して文字列のハッシュを取得しています。MD5 を使用したサンプル コードは次のとおりです。

private static String applyHashToKey(String key){
        byte[] hashkey = null;
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            hashkey = md.digest(new BASE64Decoder().decodeBuffer(key));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String result = new BASE64Encoder().encodeBuffer(hashkey);
        return result;
    }

今気づいたのは、SHA1 を使用するか、MD5 を使用して、この関数から返されるハッシュ文字列の最後に常に \r\n があることです。

例: Y60SedKVyEkKH4LKdikpc+zu5+0=\r\n

何が起こっているかについての任意のアイデア。これでよろしいですか、それとも私が何か間違ったことをして \r\n を導入しているのでしょうか?

4

1 に答える 1

1

今気づいたのは、SHA1 を使用するか、MD5 を使用して、この関数から返されるハッシュ文字列の最後に常に \r\n があることです。

明らかに、Base64 エンコーダーがライン ターミネーターを提供しています。それ以外の場合は、それをエンコードします。

于 2013-02-11T09:08:12.193 に答える