开箱即用
OpenJDK实现仅提供一个PBKDF2HmacSHA1Factory.java,其中的“ HmacSHA1”摘要已编码。据我测试,Oracle JDK在这方面没有什么不同。
您要做的是派生PBKDF2HmacSHA1Factory
(快来,它是 !),并向其构造函数添加一个参数。您可以避免创建自己的的麻烦Provider
,只需按以下步骤初始化和使用工厂即可:
PBKDF_SecretKeyFactory kf = new PBKDF_SecretKeyFactory("HmacSHA512");
KeySpec ks = new PBEKeySpec(password,salt,iterations,bitlen);
byte key[] = kf.engineGenerateSecret(ks).getEncoded();