Fungsi BCryptGenRandom (bcrypt.h)
Fungsi BCryptGenRandom menghasilkan angka acak.
Sintaks
NTSTATUS BCryptGenRandom(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] PUCHAR pbBuffer,
[in] ULONG cbBuffer,
[in] ULONG dwFlags
);
Parameter
[in, out] hAlgorithm
Handel penyedia algoritma yang dibuat dengan menggunakan fungsi BCryptOpenAlgorithmProvider . Algoritma yang ditentukan ketika penyedia dibuat harus mendukung antarmuka generator angka acak.
[in, out] pbBuffer
Alamat buffer yang menerima angka acak. Ukuran buffer ini ditentukan oleh parameter cbBuffer .
[in] cbBuffer
Ukuran, dalam byte, dari buffer pbBuffer .
[in] dwFlags
Sekumpulan bendera yang mengubah perilaku fungsi ini. Parameter ini bisa nol atau nilai berikut.
Nilai | Makna |
---|---|
|
Fungsi ini akan menggunakan angka dalam buffer pbBuffer sebagai entropi tambahan untuk angka acak. Jika bendera ini tidak ditentukan, fungsi ini akan menggunakan angka acak untuk entropi.
Windows 8 dan yang lebih baru: Bendera ini diabaikan di Windows 8 dan yang lebih baru. |
|
Gunakan algoritma generator angka acak pilihan sistem. Parameter hAlgorithm harus NULL.
BCRYPT_USE_SYSTEM_PREFERRED_RNG hanya didukung di PASSIVE_LEVELIRQL. Untuk informasi selengkapnya, lihat Keterangan. Windows Vista: Bendera ini tidak didukung tanpa SP2. |
Nilai kembali
Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.
Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Fungsi berhasil. |
|
Handel dalam parameter hAlgorithm tidak valid. |
|
Satu atau beberapa parameter tidak valid. |
Keterangan
Penyedia angka acak default mengimplementasikan algoritma untuk menghasilkan angka acak yang sesuai dengan standar NIST SP800-90, khususnya bagian CTR_DRBG dari standar tersebut.
Windows Vista: Sebelum Windows Vista dengan Paket Layanan 1 (SP1) penyedia angka acak default menerapkan algoritma untuk menghasilkan angka acak yang sesuai dengan standar FIPS 186-2.
Bergantung pada mode prosesor apa yang didukung penyedia, BCryptGenRandom dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel dapat mengeksekusi baik di PASSIVE_LEVEL IRQL atau DISPATCH_LEVEL IRQL. Jika tingkat IRQL saat ini DISPATCH_LEVEL, handel yang disediakan dalam parameter hAlgorithm harus dibuka dengan menggunakan bendera BCRYPT_PROV_DISPATCH , dan setiap pointer yang diteruskan ke fungsi BCryptGenRandom harus merujuk ke memori yang tidak di-patah (atau dikunci). Windows Vista: Penyedia Microsoft tidak mendukung panggilan di DISPATCH_LEVEL.
Untuk memanggil fungsi ini dalam mode kernel, gunakan Cng.lib, yang merupakan bagian dari Driver Development Kit (DDK). Windows Server 2008 dan Windows Vista: Untuk memanggil fungsi ini dalam mode kernel, gunakan Ksecdd.lib.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | bcrypt.h |
Pustaka | Bcrypt.lib atau Cng.lib(Untuk mode Kernel) |
DLL | Bcrypt.dll |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk