Язык

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)

Создает объект SecureRandom.

Свойства

Имя. Описание
Algorithm

Возвращает имя алгоритма, реализованного этим SecureRandom объектом.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
InstanceStrong

Возвращает объект SecureRandom.

JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).

(Унаследовано от JavaObject)
JniPeerMembers

Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).

Parameters

Возвращает действующий SecureRandomParameters для этого SecureRandom экземпляра.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
Provider

Возвращает поставщика этого SecureRandom объекта.

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)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG) и поддерживающий указанный SecureRandomParameters запрос.

GetInstance(String, ISecureRandomParameters, String)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG) и поддерживающий указанный SecureRandomParameters запрос.

GetInstance(String, ISecureRandomParameters)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG) и поддерживающий указанный SecureRandomParameters запрос.

GetInstance(String, Provider)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG).

GetInstance(String, String)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG).

GetInstance(String)

Возвращает объект, реализующий указанный SecureRandom алгоритм генератора случайных чисел (RNG).

GetSeed(Int32)

Возвращает заданное число начальных байтов, вычисленное с помощью алгоритма создания начального значения, используемого этим классом для заполнения.

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Next(Int32)

Создает целое число, содержащее указанное пользователем число псевдослучайных битов (справа оправдано, с начальными нулями).

NextBoolean()

Возвращает следующее псевдорандомное значение, равномерно распределенное boolean из последовательности генератора случайных чисел.

(Унаследовано от Random)
NextBytes(Byte[], ISecureRandomParameters)

Создает указанное пользователем число случайных байтов с дополнительными параметрами.

NextBytes(Byte[])

Создает случайные байты и помещает их в предоставленный пользователем массив байтов.

(Унаследовано от Random)
NextDouble()

Возвращает следующее псевдорандомное значение, равномерно распределенное double между 0.01.0 последовательностью генератора случайных чисел.

(Унаследовано от Random)
NextFloat()

Возвращает следующее псевдорандомное значение, равномерно распределенное float между 0.01.0 последовательностью генератора случайных чисел.

(Унаследовано от Random)
NextGaussian()

Возвращает следующее псевдорандомо, Гауссиан ("обычно") распределенное double значение со средним 0.0 и стандартным отклонением от последовательности 1.0 генератора случайных чисел.

(Унаследовано от Random)
NextInt()

Возвращает следующее псевдорандомное значение, равномерно распределенное int из последовательности генератора случайных чисел.

(Унаследовано от Random)
NextInt(Int32)

Возвращает псевдорандомное значение, равномерно распределенное int между 0 (включительно) и указанным значением (монопольным), полученным из последовательности генератора случайных чисел.

(Унаследовано от Random)
NextLong()

Возвращает следующее псевдорандомное значение, равномерно распределенное long из последовательности генератора случайных чисел.

(Унаследовано от Random)
Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Reseed()

Переопределит это SecureRandom с энтропией входных данных, считываемых из его энтропии источника.

Reseed(ISecureRandomParameters)

Переопределит это SecureRandom с энтропией ввода, считываемого из своего источника энтропии с дополнительными параметрами.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).

(Унаследовано от JavaObject)
SetSeed(Byte[])

Повторно изменяет этот случайный объект с заданным начальным значением.

SetSeed(Int64)

Задает начальное значение этого генератора случайных чисел с помощью одного long начального значения.

(Унаследовано от Random)
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 типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс предоставляет криптографически сильный генератор случайных чисел (RNG).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к