方法SecureRandom.getInstanceStrong()
声明它可以抛出NoSuchAlgorithmException
,但是文档说:
Java平台的每个实现都必须支持至少一个强大的SecureRandom实现。
在什么情况下可以引发此异常?仅当属性securerandom.strongAlgorithms
是用户定义的并且没有列出算法时,这种情况才会发生吗?
答案 0 :(得分:2)
如果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);