SecureRandom Kelas

Definisi

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

[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
Warisan
Atribut

Keterangan

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

Angka acak yang kuat secara kriptografis minimal mematuhi pengujian generator angka acak statistik yang ditentukan dalam FIPS 140-2, Persyaratan Keamanan untuk Modulhttp://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf Kriptografi, bagian 4.9.1. Selain itu, SecureRandom harus menghasilkan output non-deterministik. Oleh karena itu setiap bahan benih yang SecureRandom diteruskan ke objek harus tidak dapat diprediksi, dan semua SecureRandom urutan output harus kuat secara kriptografis, seperti yang dijelaskan dalam RFC 4086: Persyaratan Keacakan untuk Keamananhttp://tools.ietf.org/html/rfc4086.

Banyak SecureRandom implementasi dalam bentuk generator angka pseudo-random (PRNG, juga dikenal sebagai generator bit acak deterministik atau DRBG), yang berarti mereka menggunakan algoritma deterministik untuk menghasilkan urutan acak semu dari benih acak. Implementasi lain dapat menghasilkan angka acak yang benar, namun yang lain dapat menggunakan kombinasi dari kedua teknik.

Pemanggil mendapatkan instans SecureRandom melalui konstruktor tanpa argumen atau salah getInstance satu metode. Contohnya:

<blockquote>

SecureRandom r1 = new SecureRandom();
            SecureRandom r2 = SecureRandom.getInstance("NativePRNG");
            SecureRandom r3 = SecureRandom.getInstance("DRBG",
                    DrbgParameters.instantiation(128, RESEED_ONLY, null));

</blockquote>

Pernyataan ketiga di atas mengembalikan SecureRandom objek algoritma tertentu yang mendukung parameter instantiate tertentu. Parameter instansiasi efektif implementasi harus cocok dengan permintaan minimum ini tetapi belum tentu sama. Misalnya, bahkan jika permintaan tidak memerlukan fitur tertentu, instansiasi aktual dapat menyediakan fitur tersebut. Implementasi SecureRandom dapat dengan malas membuat instans hingga benar-benar digunakan, tetapi parameter instans yang efektif harus ditentukan tepat setelah dibuat dan #getParameters() harus selalu mengembalikan hasil yang sama tidak berubah.

Penelepon umum memanggil SecureRandom metode berikut untuk mengambil byte acak:

<blockquote>

SecureRandom random = new SecureRandom();
            byte[] bytes = new byte[20];
            random.nextBytes(bytes);

</blockquote>

Penelepon juga dapat memanggil #generateSeed metode untuk menghasilkan sejumlah byte benih tertentu (untuk menyemai generator angka acak lainnya, misalnya):

<blockquote>

byte[] seed = random.generateSeed(20);

</blockquote>

Objek PRNG SecureRandom yang baru dibuat tidak diunggulkan (kecuali jika dibuat oleh #SecureRandom(byte[])). Panggilan pertama untuk nextBytes akan memaksanya untuk menyemai dirinya sendiri dari sumber entropi khusus implementasi. Penyemaian mandiri ini tidak akan terjadi jika setSeed sebelumnya dipanggil.

SecureRandom dapat di-reseed kapan saja dengan memanggil reseed metode atau setSeed . Metode ini reseed membaca input entropi dari sumber entropinya untuk mengubahnya sendiri. Metode ini setSeed mengharuskan pemanggil untuk menyediakan benih.

Harap dicatat bahwa reseed mungkin tidak didukung oleh semua SecureRandom implementasi.

Beberapa SecureRandom implementasi dapat menerima SecureRandomParameters parameter dalam metode dan #nextBytes(byte[], SecureRandomParameters) untuk #reseed(SecureRandomParameters) lebih mengontrol perilaku metode.

Catatan: Tergantung pada implementasinya, generateSeedmetode , reseed dan nextBytes dapat memblokir karena entropi sedang dikumpulkan, misalnya, jika sumber entropi adalah /dev/random pada berbagai sistem operasi seperti Unix.

<h2> Objek keamanan </h2>SecureRandom thread aman untuk digunakan oleh beberapa utas bersamaan.

Ditambahkan dalam 1.1.

Java dokumentasi untuk java.security.SecureRandom.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Konstruktor

Nama Deskripsi
SecureRandom()

Membangun generator angka acak aman (RNG) yang mengimplementasikan algoritma angka acak default.

SecureRandom(Byte[])

Membangun generator angka acak aman (RNG) yang mengimplementasikan algoritma angka acak default.

SecureRandom(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

SecureRandom(SecureRandomSpi, Provider)

SecureRandom Membuat objek.

Properti

Nama Deskripsi
Algorithm

Mengembalikan nama algoritma yang diimplementasikan oleh objek ini SecureRandom .

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
InstanceStrong

Mengembalikan objek SecureRandom.

JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
JniPeerMembers

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

Parameters

Mengembalikan efektivitas SecureRandomParameters untuk instans ini SecureRandom .

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
Provider

Mengembalikan penyedia objek ini SecureRandom .

ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
Equals(Object)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
GenerateSeed(Int32)

Mengembalikan jumlah byte seed yang diberikan, dihitung menggunakan algoritma pembuatan seed yang digunakan kelas ini untuk seed itu sendiri.

GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
GetInstance(String, ISecureRandomParameters, Provider)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan dan mendukung permintaan yang ditentukan SecureRandomParameters .

GetInstance(String, ISecureRandomParameters, String)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan dan mendukung permintaan yang ditentukan SecureRandomParameters .

GetInstance(String, ISecureRandomParameters)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan dan mendukung permintaan yang ditentukan SecureRandomParameters .

GetInstance(String, Provider)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan.

GetInstance(String, String)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan.

GetInstance(String)

Mengembalikan SecureRandom objek yang mengimplementasikan algoritma Random Number Generator (RNG) yang ditentukan.

GetSeed(Int32)

Mengembalikan jumlah byte seed yang diberikan, dihitung menggunakan algoritma pembuatan seed yang digunakan kelas ini untuk seed itu sendiri.

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Next(Int32)

Menghasilkan bilangan bulat yang berisi jumlah bit pseudo-random yang ditentukan pengguna (kanan dibenarkan, dengan nol di depan).

NextBoolean()

Mengembalikan pseudorandom berikutnya, nilai yang didistribusikan boolean secara seragam dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextBytes(Byte[], ISecureRandomParameters)

Menghasilkan jumlah byte acak yang ditentukan pengguna dengan parameter tambahan.

NextBytes(Byte[])

Menghasilkan byte acak dan menempatkannya ke dalam array byte yang disediakan pengguna.

(Diperoleh dari Random)
NextDouble()

Mengembalikan nilai pseudorandom berikutnya yang didistribusikan double secara seragam antara 0.0 dan 1.0 dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextFloat()

Mengembalikan nilai pseudorandom berikutnya yang didistribusikan float secara seragam antara 0.0 dan 1.0 dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextGaussian()

Mengembalikan nilai terdistribusi double pseudorandom, Gaussian ("normally") berikutnya dengan nilai rata-rata 0.0 dan simpanpan 1.0 baku dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextInt()

Mengembalikan pseudorandom berikutnya, nilai yang didistribusikan int secara seragam dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextInt(Int32)

Mengembalikan nilai pseudorandom, yang didistribusikan int secara seragam antara 0 (inklusif) dan nilai yang ditentukan (eksklusif), diambil dari urutan generator angka acak ini.

(Diperoleh dari Random)
NextLong()

Mengembalikan pseudorandom berikutnya, nilai yang didistribusikan long secara seragam dari urutan generator angka acak ini.

(Diperoleh dari Random)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
Reseed()

Reseeds ini SecureRandom dengan input entropi dibaca dari sumber entropinya.

Reseed(ISecureRandomParameters)

Reseeds ini SecureRandom dengan input entropi dibaca dari sumber entropinya dengan parameter tambahan.

SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
SetSeed(Byte[])

Reseeds objek acak ini dengan seed yang diberikan.

SetSeed(Int64)

Mengatur benih generator angka acak ini menggunakan satu long biji.

(Diperoleh dari Random)
ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

(Diperoleh dari Random)

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

Kelas ini menyediakan generator angka acak (RNG) yang kuat secara kriptografis.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk