为什么这个带有Salt的MD5结果在结果字符串的末尾有“==”?

时间:2013-03-21 05:54:42

标签: java hash md5 salt jasypt

我有使用jasypt(Java简化加密)库的java代码:

    StandardStringDigester digester = new StandardStringDigester();
    digester.setAlgorithm("MD5");
    digester.setIterations(1);

    FixedStringSaltGenerator saltGenerator = new FixedStringSaltGenerator();
    saltGenerator.setSalt("justAnotherSalt");

    digester.setSaltGenerator(saltGenerator);
    digester.setSaltSizeBytes(5);

    String digest = digester.digest("my_password");

    System.out.println(digest);

你可以看到我使用MD5算法和盐。

控制台中的结果是:

I9uMOxDiImtxMXKXkt2EUw==

我想知道为什么结果字符串末尾有“==”字符?只有我使用盐才会存在。

1 个答案:

答案 0 :(得分:2)

StandardStringDigester.digest API说结果以BASE64(默认)或HEXADECIMAL编码,并作为ASCII字符串返回。在你的情况下,这是BASE64