我将用户加密的密码存储在数据库中。
代码:
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;
}
如何解密存储的密码..?
答案 0 :(得分:0)
如何进行密码检查的方法是加密用户提供的密码,并将结果与存储在数据库中的加密密码进行比较。
如果你需要解密密码,那么你做错了什么,如果我们知道你需要解密它们,它会帮助我们更好地回答。
如果您可以解密存储的密码,那么首先加密它们没有太大意义,因为加密点是为了保护密码免受窥探。如果您可以解密它们,加密是一种麻烦,而不是安全功能。