Spec-Zone .ru
спецификации, руководства, описания, API
|
public class SecureRandom extends Random
Криптографически случайное число strong минимально выполняет статистические тесты генератора случайных чисел, определенные в
Вызывающая сторона получает экземпляр SecureRandom через конструктора без параметров или один из getInstance
методы:
SecureRandom random = new SecureRandom();
Много реализаций SecureRandom находятся в форме генератора псевдослучайного числа (PRNG), что означает, что они используют детерминированный алгоритм, чтобы произвести псевдослучайную последовательность из истинного случайного семени. Другие реализации могут произвести истинные случайные числа, и все же другие могут использовать комбинацию обоих методов.
Типичные вызывающие стороны SecureRandom вызывают следующие методы, чтобы получить случайные байты:
SecureRandom random = new SecureRandom(); byte bytes[] = new byte[20]; random.nextBytes(bytes);
Вызывающие стороны могут также вызвать generateSeed
метод, чтобы генерировать данное число байтов семени (чтобы отобрать другие генераторы случайных чисел, например):
byte seed[] = random.generateSeed(20);Отметьте: В зависимости от реализации,
generateSeed
и nextBytes
методы могут блокировать, поскольку энтропия собирается, например, если они должны читать из/dev/random на различных Подобных Unix операционных системах.SecureRandomSpi
, Random
, Сериализированная ФормаМодификатор | Конструктор и Описание |
---|---|
|
SecureRandom()
Создает безопасный генератор случайных чисел (RNG) реализация алгоритма случайного числа значения по умолчанию.
|
|
SecureRandom(byte[] seed)
Создает безопасный генератор случайных чисел (RNG) реализация алгоритма случайного числа значения по умолчанию.
|
protected |
SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
Создает объект SecureRandom.
|
Модификатор и Тип | Метод и Описание |
---|---|
byte[] |
generateSeed(int numBytes)
Возвращает данное число байтов семени, вычисленное использование алгоритма генерации семени что этот class использование, чтобы отобрать себя.
|
Строка |
getAlgorithm()
Возвращает имя алгоритма, реализованного этим объектом SecureRandom.
|
static SecureRandom |
getInstance(String algorithm)
Возвращается SecureRandom возражают, что реализует указанный Генератор случайных чисел (RNG) алгоритм.
|
static SecureRandom |
getInstance(String algorithm, Provider provider)
Возвращается SecureRandom возражают, что реализует указанный Генератор случайных чисел (RNG) алгоритм.
|
static SecureRandom |
getInstance(String algorithm, String provider)
Возвращается SecureRandom возражают, что реализует указанный Генератор случайных чисел (RNG) алгоритм.
|
Провайдер |
getProvider()
Возвращает провайдера этого объекта SecureRandom.
|
static byte[] |
getSeed(int numBytes)
Возвращает данное число байтов семени, вычисленное использование алгоритма генерации семени что этот class использование, чтобы отобрать себя.
|
static SecureRandom |
getStrongSecureRandom()
Возвраты a
SecureRandom объект, который был выбран при использовании алгоритмов/провайдеров, определенных в securerandom.strongAlgorithms Свойство безопасности. |
protected int |
next(int numBits)
Генерирует целое число, содержащее пользовательское конкретное количество псевдослучайных битов (выровненный по правому краю, с начальными нулями).
|
void |
nextBytes(byte[] bytes)
Генерирует пользовательское конкретное количество случайных байтов.
|
void |
setSeed(byte[] seed)
Пересемена этот случайный объект.
|
void |
setSeed(long seed)
Пересемена этот случайный объект, используя восемь байтов содержатся в данном
long seed . |
doubles, gaussians, ints, longs, nextBoolean, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong
public SecureRandom()
Этот конструктор пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект SecureRandom инкапсуляция реализации SecureRandomSpi от первого Провайдера, который поддерживает SecureRandom (RNG) алгоритм. Если ни один из Провайдеров не поддерживает алгоритм RNG, то специфичное для реализации значение по умолчанию возвращается.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
См. раздел SecureRandom в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма RNG.
Возвращенный объект SecureRandom не был отобран. Чтобы отобрать возвращенный объект, вызовите setSeed
метод. Если setSeed
не вызывается, первый звонок nextBytes
вызовет объект SecureRandom отобрать себя. Этот самоотбор не будет происходить если setSeed
был ранее вызван.
public SecureRandom(byte[] seed)
Этот конструктор пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект SecureRandom инкапсуляция реализации SecureRandomSpi от первого Провайдера, который поддерживает SecureRandom (RNG) алгоритм. Если ни один из Провайдеров не поддерживает алгоритм RNG, то специфичное для реализации значение по умолчанию возвращается.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
См. раздел SecureRandom в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма RNG.
seed
- семя.protected SecureRandom(SecureRandomSpi secureRandomSpi, Provider provider)
secureRandomSpi
- реализация SecureRandom.provider
- провайдер.public static SecureRandom getInstance(String algorithm) throws NoSuchAlgorithmException
Этот метод пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект SecureRandom инкапсуляция реализации SecureRandomSpi от первого Провайдера, который поддерживает указанный алгоритм.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
Возвращенный объект SecureRandom не был отобран. Чтобы отобрать возвращенный объект, вызовите setSeed
метод. Если setSeed
не вызывается, первый звонок nextBytes
вызовет объект SecureRandom отобрать себя. Этот самоотбор не будет происходить если setSeed
был ранее вызван.
algorithm
- имя алгоритма RNG. См. раздел SecureRandom в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма RNG.NoSuchAlgorithmException
- если никакой Провайдер не поддерживает реализацию SecureRandomSpi для указанного алгоритма.Provider
public static SecureRandom getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращается новый объект SecureRandom инкапсуляция реализации SecureRandomSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
Возвращенный объект SecureRandom не был отобран. Чтобы отобрать возвращенный объект, вызовите setSeed
метод. Если setSeed
не вызывается, первый звонок nextBytes
вызовет объект SecureRandom отобрать себя. Этот самоотбор не будет происходить если setSeed
был ранее вызван.
algorithm
- имя алгоритма RNG. См. раздел SecureRandom в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма RNG.provider
- имя провайдера.NoSuchAlgorithmException
- если реализация SecureRandomSpi для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если имя провайдера является нулем или пустой.Provider
public static SecureRandom getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Возвращается новый объект SecureRandom инкапсуляция реализации SecureRandomSpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
Возвращенный объект SecureRandom не был отобран. Чтобы отобрать возвращенный объект, вызовите setSeed
метод. Если setSeed
не вызывается, первый звонок nextBytes
вызовет объект SecureRandom отобрать себя. Этот самоотбор не будет происходить если setSeed
был ранее вызван.
algorithm
- имя алгоритма RNG. См. раздел SecureRandom в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма RNG.provider
- провайдер.NoSuchAlgorithmException
- если реализация SecureRandomSpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если указанный провайдер является нулем.Provider
public final Provider getProvider()
public String getAlgorithm()
unknown
если имя алгоритма не может быть определено.public void setSeed(byte[] seed)
seed
- семя.getSeed(int)
public void setSeed(long seed)
long seed
. Данные дополнения семени, а не замены, существующее семя. Таким образом повторные вызовы, как гарантируют, никогда не не уменьшат случайность. Этот метод определяется для совместимости с java.util.Random
.
setSeed
в class Random
seed
- семя.getSeed(int)
public void nextBytes(byte[] bytes)
Если звонок setSeed
не произошел ранее, первый звонок в этот метод вызывает этот объект SecureRandom отобрать себя. Этот самоотбор не будет происходить если setSeed
был ранее вызван.
protected final int next(int numBits)
java.util.Random
метод, и подачи, чтобы обеспечить источник случайных битов ко всем методам, наследованным, от что class (например, nextInt
, nextLong
, и nextFloat
).public static byte[] getSeed(int numBytes)
Этот метод только включается для назад совместимости. Вызывающая сторона поощряется использовать одну из альтернативы getInstance
методы, чтобы получить объект SecureRandom, и затем вызвать generateSeed
метод, чтобы получить байты семени из того объекта.
numBytes
- число байтов семени, чтобы генерировать.setSeed(byte[])
public byte[] generateSeed(int numBytes)
numBytes
- число байтов семени, чтобы генерировать.public static SecureRandom getStrongSecureRandom()
SecureRandom
объект, который был выбран при использовании алгоритмов/провайдеров, определенных в securerandom.strongAlgorithms
Свойство безопасности. Некоторые ситуации требуют strong случайные значения, такой, создавая high-value/long-lived секреты как общественность/закрытые ключи RSA. Помочь вести приложения в выборе подходящего strong SecureRandom
реализация, дистрибутивы Java должны включать список известного strong SecureRandom
реализации в securerandom.strongAlgorithms
Свойство безопасности.
SecureRandom sr = SecureRandom.getStrongSecureRandom(); if (sr == null) { // Decide if this is a problem, and whether to recover. sr = new SecureRandom(); if (!goodEnough(sr)) { return; } } keyPairGenerator.initialize(2048, sr);
SecureRandom
реализация как обозначено securerandom.strongAlgorithms
Свойство безопасности, или нуль, если ни один не доступен.Security.getProperty(String)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92