【发布时间】:2015-04-02 08:58:06
【问题描述】:
我将用户加密密码存储在数据库中。
代码:
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;
}
如何解密存储的密码..?
【问题讨论】:
-
所以,要明确一点:您是在问如何解密自己加密的密码?在使用算法之前,你不应该知道它的两面吗?
-
与@Torben 的回答相反,密码检查总是在设计良好且不易受到法律不可否认行为影响的安全系统中进行散列 使用安全散列算法的密码,并比较 散列。 这样的系统应该是不可能恢复明文密码的。如果您正在设计一个假定能够这样做的系统,那么您做错了,不仅是技术上的,而且是法律上的,以可能会破坏您的公司的方式。在继续下一步之前,请先听取合格的建议。
-
@EJP 我说的不就是这个吗?
-
好的@EJB 我明白了谢谢......!
标签: java shiro password-recovery