使用 Java 中的 PBKDF2 进行密码验证
2022-09-02 10:51:43
我正在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是否为此提供支持,或者如果不是,那么什么是安全的替代方案?
感谢您抽出宝贵时间接受采访。