Pin*_*ain 18 java passwords cryptography aes
我正在用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");
Run Code Online (Sandbox Code Playgroud)
我共享盐,用户在每端输入密码,加密和解密工作正常:-)我的问题是,我希望能够验证用户输入的密码是否正确才能开始(可能很长)解密过程.我知道PBKD规范包含一个可选的2字节验证值,但我不知道如何使用上述方法生成此值.Java是否为此提供支持,或者不支持哪种安全替代方案?
谢谢你的时间.
嘿,感谢疯狂的苏格兰人和克里斯的帮助。经过一番挖掘后,我决定使用Gladmans 博士文件加密页面上描述的方法来进行密码验证和消息身份验证。我相信这种基于 PBKDF2 和 MAC 的方法使得派生密码的验证值的成本足够高,以确保其安全。再次感谢,我希望这个解决方案对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
19619 次 |
| 最近记录: |