使用Jasypt加密和解密密码

马可斯

它用于桌面应用程序,因此只有我需要基本的登录安全性,尽管我使用一个功能来加密密码,但我要使用另一个功能来将密码从UI传递并散列保存到db中,然后返回true或false取决于是否匹配。

我尝试使用官方jasypt网站上的合并版本,虽然可以加密,但不知道如何解密。

//Function to encrypt password
public static String cifrarClave(String clave) {
    PooledStringDigester digester = new PooledStringDigester();
    digester.setPoolSize(4);
    digester.setAlgorithm("SHA-1");
    digester.setIterations(50000);
    digester.setSaltSizeBytes(32);

    //String return is hash that I save into db
    return digester.digest(clave);
}

//Function to decrypt password
//clave is old plain that user enter from UI and I want to compare from hash save it into db
public static boolean validarClave(String clave, String hash) {
    PooledStringDigester digester = new PooledStringDigester();
    digester.setPoolSize(4); 
    digester.setAlgorithm("SHA-1");
    digester.setIterations(50000);

    String digest = digester.digest(clave);

    //Always fails at that point, I get different hash from compare clave
    return digester.matches(digest, hash);
}

我是安全方面的新手,因此我对安全性了解不多,我接受其他建议或替代方案,我只想要一个有效的示例。

蜘蛛脑

matches(message, digest)当您用两个散列摘要而不是纯文本消息和先前计算的摘要来调用jasypt函数时,您使用的jasypt函数不正确。

在您的中validarClave(),您首先不必要根据用户的纯文本密码(clave计算摘要,然后将其传递给匹配器:

String digest = digester.digest(clave);
//Always fails at that point, I get different hash from compare clave
return digester.matches(digest, hash);

如果您仅将纯文本密码传递给匹配器,则您的方法将正常工作,如下所示:

digester.matches(clave, hash);

jasypt的javadocs代码示例上提供了更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Jasypt加密和解密密码

来自分类Dev

我们如何在空手道中加密和解密密码?

来自分类Dev

如何在SQL Server 2008 R2中加密和解密密码?

来自分类Dev

如何使用 libsodium php 用盐加密/解密密码

来自分类Dev

Python中的密码加密和解密

来自分类Dev

C中的凯撒密码 - 加密和解密

来自分类Dev

无法将Jasypt加密密码保存到.properties文件

来自分类Dev

使用Talend Data Integration对.properties文件中的密码进行加密/加密和解密

来自分类Dev

Node.JS加密密码/解密不起作用

来自分类Dev

无法使用CryptoJS解密密码

来自分类Dev

使用bcrypt php解密密码

来自分类Dev

分别使用椭圆曲线密码术加密和解密文本消息

来自分类Dev

使用AES算法进行加密和解密

来自分类Dev

使用Java进行AES加密和解密

来自分类Dev

使用C ++进行加密和解密

来自分类Dev

使用RSA OAEP加密和解密

来自分类Dev

TomEE中的数据源密码加密和解密

来自分类Dev

MySQL:解密密码

来自分类Dev

对 Plink/PuTTY 使用加密密码

来自分类Dev

加密和解密性能

来自分类Dev

AES加密和解密

来自分类Dev

加密和解密AES

来自分类Dev

LSB加密和解密

来自分类Dev

加密密码FOSUserBundle

来自分类Dev

加密密码

来自分类Dev

Android-使用指纹扫描仪和密码来加密和解密多个字符串

来自分类Dev

Android-使用指纹扫描仪和密码来加密和解密多个字符串

来自分类Dev

使用密码和散列加密密码

来自分类Dev

设计 gem 以使用当前密码检查加密密码