Я храню зашифрованный пароль пользователя в базе данных.как расшифровать сиро пароль, хранящийся в базе данных ..?
код:
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;
}
как расшифровать сохраненный пароль ..?
Итак, чтобы быть понятным, вы спрашиваете, как расшифровать пароль, который был зашифрован собой? Разве вы не должны знать обе стороны алгоритма перед его использованием? – GhostCat
В отличие от ответа Тортона, проверка пароля всегда выполняется в грамотно разработанных защищенных системах, которые не уязвимы для юридических действий без отказов, - это * хэш * пароль с безопасным алгоритмом хеширования и сравнивать * хэшей. * Для такой системы совершенно невозможно, чтобы восстановить пароль открытого текста. Если вы разрабатываете систему, которая, как предполагается, способна это сделать, вы делаете это неправильно, а не только технически, но юридически, способами, которые могут нарушить вашу компанию. Примите компетентные советы, прежде чем продолжить. – EJP
@EJP Разве это не то, что я сказал? – Torben