SecureRandom Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).
[Android.Runtime.Register("java/security/SecureRandom", DoNotGenerateAcw=true)]
public class SecureRandom : Java.Util.Random
[<Android.Runtime.Register("java/security/SecureRandom", DoNotGenerateAcw=true)>]
type SecureRandom = class
inherit Random
- Наследование
- Атрибуты
Комментарии
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).
Криптографически сильное случайное число минимально соответствует тестам генератора статистических случайных чисел, указанных в FIPS 140-2, требования к безопасности для криптографических модулейhttp://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf, раздел 4.9.1. Кроме того, SecureRandom необходимо производить недетерминированные выходные данные. Поэтому любой начальный материал, передаваемый SecureRandom объекту, должен быть непредсказуемым, и все SecureRandom выходные последовательности должны быть криптографически сильными, как описано в RFC 4086: требования случайности для безопасностиhttp://tools.ietf.org/html/rfc4086.
Многие SecureRandom реализации находятся в форме генератора псевдо случайных чисел (PRNG, также известного как детерминированный генератор случайных битов или DRBG), что означает, что они используют детерминированный алгоритм для создания псевдо-случайной последовательности из случайного начального значения. Другие реализации могут создавать истинные случайные числа, а другие могут использовать сочетание обоих методов.
Вызывающий SecureRandom объект получает экземпляр с помощью конструктора no-argument или одного из getInstance методов. Рассмотрим пример.
<blockquote>
SecureRandom r1 = new SecureRandom();
SecureRandom r2 = SecureRandom.getInstance("NativePRNG");
SecureRandom r3 = SecureRandom.getInstance("DRBG",
DrbgParameters.instantiation(128, RESEED_ONLY, null));
</blockquote>
Третья инструкция, описанная выше, возвращает SecureRandom объект конкретного алгоритма, поддерживающего определенные параметры экземпляра. Действующие экземпляры параметров реализации должны соответствовать этому минимальному запросу, но не обязательно совпадают. Например, даже если запросу не требуется определенная функция, фактический экземпляр может предоставить эту функцию. Реализация может неустанно создать экземпляр до SecureRandom его использования, но эффективные параметры экземпляра должны быть определены сразу после его создания и #getParameters() всегда должны возвращать тот же результат без изменений.
Типичные вызывающие методы вызывают следующие методы SecureRandom для получения случайных байтов:
<blockquote>
SecureRandom random = new SecureRandom();
byte[] bytes = new byte[20];
random.nextBytes(bytes);
</blockquote>
Вызывающие пользователи также могут вызвать #generateSeed метод для создания заданного количества байтов начального значения (например, для заполнения других генераторов случайных чисел):
<blockquote>
byte[] seed = random.generateSeed(20);
</blockquote>
Созданный объект PRNG SecureRandom не заполняется (за исключением случаев, когда он создается #SecureRandom(byte[])). Первый вызов, который nextBytes будет принудительно заемять себя из конкретного источника энтропии реализации. Это самозаселение не будет происходить, если setSeed ранее был вызван.
Повторное SecureRandom изменение может быть изменено в любое время путем вызова reseed метода или setSeed метода. Метод reseed считывает входные данные энтропии из его энтропии источника для повторного изменения. Метод setSeed требует, чтобы вызывающий объект предоставил начальное значение.
Обратите внимание, что reseed не поддерживается всеми SecureRandom реализациями.
Некоторые SecureRandom реализации могут принимать SecureRandomParameters параметр в его #nextBytes(byte[], SecureRandomParameters) и #reseed(SecureRandomParameters) методах для дальнейшего управления поведением методов.
Примечание. В зависимости от реализации, generateSeedreseed методы и nextBytes методы могут блокироваться как энтропия собирается, например, если источник энтропии является /dev/случайным в различных операционных системах, таких как Unix.
<Объекты h2 Thread safety >/h2<>SecureRandom безопасны для использования несколькими параллельными потоками.
Добавлено в версии 1.1.
Java документации по java.security.SecureRandom.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| SecureRandom() |
Создает безопасный генератор случайных чисел (RNG), реализующий алгоритм случайного числа по умолчанию. |
| SecureRandom(Byte[]) |
Создает безопасный генератор случайных чисел (RNG), реализующий алгоритм случайного числа по умолчанию. |
| SecureRandom(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
| SecureRandom(SecureRandomSpi, Provider) |
Создает объект |
Свойства
| Имя. | Описание |
|---|---|
| Algorithm |
Возвращает имя алгоритма, реализованного этим |
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| InstanceStrong |
Возвращает объект |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| JniPeerMembers |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). |
| Parameters |
Возвращает действующий |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| Provider |
Возвращает поставщика этого |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| Equals(Object) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| GenerateSeed(Int32) |
Возвращает заданное число начальных байтов, вычисленное с помощью алгоритма создания начального значения, используемого этим классом для заполнения. |
| GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
| GetInstance(String, ISecureRandomParameters, Provider) |
Возвращает объект, реализующий указанный |
| GetInstance(String, ISecureRandomParameters, String) |
Возвращает объект, реализующий указанный |
| GetInstance(String, ISecureRandomParameters) |
Возвращает объект, реализующий указанный |
| GetInstance(String, Provider) |
Возвращает объект, реализующий указанный |
| GetInstance(String, String) |
Возвращает объект, реализующий указанный |
| GetInstance(String) |
Возвращает объект, реализующий указанный |
| GetSeed(Int32) |
Возвращает заданное число начальных байтов, вычисленное с помощью алгоритма создания начального значения, используемого этим классом для заполнения. |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Next(Int32) |
Создает целое число, содержащее указанное пользователем число псевдослучайных битов (справа оправдано, с начальными нулями). |
| NextBoolean() |
Возвращает следующее псевдорандомное значение, равномерно распределенное |
| NextBytes(Byte[], ISecureRandomParameters) |
Создает указанное пользователем число случайных байтов с дополнительными параметрами. |
| NextBytes(Byte[]) |
Создает случайные байты и помещает их в предоставленный пользователем массив байтов. (Унаследовано от Random) |
| NextDouble() |
Возвращает следующее псевдорандомное значение, равномерно распределенное |
| NextFloat() |
Возвращает следующее псевдорандомное значение, равномерно распределенное |
| NextGaussian() |
Возвращает следующее псевдорандомо, Гауссиан ("обычно") распределенное |
| NextInt() |
Возвращает следующее псевдорандомное значение, равномерно распределенное |
| NextInt(Int32) |
Возвращает псевдорандомное значение, равномерно распределенное |
| NextLong() |
Возвращает следующее псевдорандомное значение, равномерно распределенное |
| Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Reseed() |
Переопределит это |
| Reseed(ISecureRandomParameters) |
Переопределит это |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| SetSeed(Byte[]) |
Повторно изменяет этот случайный объект с заданным начальным значением. |
| SetSeed(Int64) |
Задает начальное значение этого генератора случайных чисел с помощью одного |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). (Унаследовано от Random) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG). |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |