如何解密存储在数据库中的shiro密码..?

时间:2015-04-02 08:58:07

标签: java shiro password-recovery

我将用户加密的密码存储在数据库中。

代码:

String username = "admin";
String encrypted_password = createPassword("admin$321"); 
// $shiro1$SHA-256$500000$mAXboFyyOtBVoGi6AD8LXw==$acHoVyuQyOSOKfjqwAHXyEVTH7p9cH79yI+0O15NS0U=
System.out.println(getOriginalPassword(encrypted_password));

private static String createPassword(String password) {
DefaultPasswordService passwordService = new DefaultPasswordService();
DefaultHashService hashService = new DefaultHashService();
hashService.setHashIterations(passwordService.DEFAULT_HASH_ITERATIONS);
hashService.setHashAlgorithmName(passwordService.DEFAULT_HASH_ALGORITHM);
hashService.setGeneratePublicSalt(true);

passwordService.setHashService(hashService);
String encryptedPassword = passwordService.encryptPassword(password);
System.out.println(encryptedPassword);
return encryptedPassword;
}

private static String getOriginalPassword(String encrypted_password) {
    return null;
}

如何解密存储的密码..?

1 个答案:

答案 0 :(得分:0)

如何进行密码检查的方法是加密用户提供的密码,并将结果与​​存储在数据库中的加密密码进行比较。

如果你需要解密密码,那么你做错了什么,如果我们知道你需要解密它们,它会帮助我们更好地回答。

如果您可以解密存储的密码,那么首先加密它们没有太大意义,因为加密点是为了保护密码免受窥探。如果您可以解密它们,加密是一种麻烦,而不是安全功能。