SecureRandom Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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) |
|
Properti
| Nama | Deskripsi |
|---|---|
| Algorithm |
Mengembalikan nama algoritma yang diimplementasikan oleh objek ini |
| Class |
Mengembalikan kelas runtime dari . |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| InstanceStrong |
Mengembalikan objek |
| 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 |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| Provider |
Mengembalikan penyedia objek ini |
| 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 |
| GetInstance(String, ISecureRandomParameters, String) |
Mengembalikan |
| GetInstance(String, ISecureRandomParameters) |
Mengembalikan |
| GetInstance(String, Provider) |
Mengembalikan |
| GetInstance(String, String) |
Mengembalikan |
| GetInstance(String) |
Mengembalikan |
| 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 |
| 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 |
| NextFloat() |
Mengembalikan nilai pseudorandom berikutnya yang didistribusikan |
| NextGaussian() |
Mengembalikan nilai terdistribusi |
| NextInt() |
Mengembalikan pseudorandom berikutnya, nilai yang didistribusikan |
| NextInt(Int32) |
Mengembalikan nilai pseudorandom, yang didistribusikan |
| NextLong() |
Mengembalikan pseudorandom berikutnya, nilai yang didistribusikan |
| 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 |
| Reseed(ISecureRandomParameters) |
Reseeds ini |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| 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 |