#java
#java
Вопрос:
Метод SecureRandom.getInstanceStrong()
объявляет, что он может выдавать a NoSuchAlgorithmException
, однако в документе говорится:
Каждая реализация платформы Java должна поддерживать хотя бы одну надежную реализацию SecureRandom.
При каких обстоятельствах это исключение может быть выдано? Может ли это произойти, только если свойство securerandom.strongAlgorithms
определено пользователем и не содержит списка алгоритмов?
Ответ №1:
Похоже, это исключение действительно генерируется, если securerandom.strongAlgorithms
оно неправильно настроено. Непроверенное исключение могло бы быть лучшим выбором.
if (property == null || property.isEmpty()) {
throw new NoSuchAlgorithmException(
"Null/empty securerandom.strongAlgorithms Security Property");
}
…
throw new NoSuchAlgorithmException(
"No strong SecureRandom impls available: " property);