用Java中的PBKDF2进行密码验证

我正在用Java进行基于密码的文件加密;我正在使用AES作为底层加密算法,PBKDF2WithHmacSHA1并使用以下代码(我是从该网站的另一位慷慨的海报获得者)从盐和密码的组合中得出密钥的。

SecretKeyFactory f = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");

KeySpec ks = new PBEKeySpec(password,salt,1024,128);

SecretKey s = f.generateSecret(ks);

Key k = new SecretKeySpec(s.getEncoded(),"AES");

我吃了盐,用户在两端输入密码,加密和解密工作正常:-)我的问题是,我希望能够在进入(可能很长)之前验证用户输入的密码是否正确解密过程。我知道PBKD规范包含一个可选的2字节验证值,但是我不确定如何使用上述方法生成该值。Java是否为此提供支持?

谢谢你的时间。

回答:

嘿,感谢疯狂的苏格兰人和克里斯(Chris)的帮助。经过一些挖掘之后,我决定使用Gladmans博士文件加密页面上描述的方法进行密码验证和消息身份验证。我相信这种基于PBKDF2和MAC的方法使得派生密码的验证值足够昂贵以使其安全。再次感谢,我希望此解决方案对其他人有帮助。

以上是 用Java中的PBKDF2进行密码验证 的全部内容, 来源链接: utcz.com/qa/428064.html

回到顶部