Penjanaan Rentetan Rawak Selamat - Panduan Lengkap Kerawakan Kriptografi
Ketahui mengapa rentetan rawak yang selamat secara kriptografi penting, cara CSPRNG berfungsi, dan cara menjana kata laluan, kunci API, token dan ID unik yang selamat.
Mengapa Rentetan Rawak Penting
Rentetan rawak adalah asas keselamatan digital. Setiap kali anda log masuk ke laman web, menyambung ke API, atau membuat pembayaran dalam talian, rentetan rawak berfungsi di belakang tabir untuk memastikan data anda selamat.
- Kata laluan: Kata laluan yang kuat pada dasarnya adalah rentetan rawak yang hanya anda ketahui.
- Kunci API: Perkhidmatan seperti Google Maps, Stripe dan AWS menggunakan rentetan rawak sebagai kunci API untuk mengesahkan permintaan.
- Token sesi: Apabila anda log masuk, pelayan menjana token sesi rawak. Jika token ini boleh diramal, penyerang boleh merampas sesi anda.
- UUID: Pengecam Unik Universal ialah rentetan rawak 128-bit untuk kunci utama pangkalan data dan sistem teragih.
- Kunci penyulitan dan salt: Operasi kriptografi memerlukan kunci dan nilai salt yang benar-benar rawak.
Rawak vs Selamat Secara Kriptografi
Math.random() -- Pseudorawak (Tidak Selamat)
Math.random() dalam JavaScript dijana oleh algoritma deterministik. Penyerang boleh meramal output.
crypto.getRandomValues() -- Selamat Secara Kriptografi
CSPRNG direka khusus untuk aplikasi keselamatan, menggunakan sumber fizikal yang tidak boleh diramal.
// INSECURE - Do NOT use for security purposes
var weak = Math.random().toString(36).substring(2);
// SECURE - Cryptographically strong random string
function generateSecureString(length, charset) {
var result = '';
var values = new Uint32Array(length);
crypto.getRandomValues(values);
for (var i = 0; i < length; i++) {
result += charset[values[i] % charset.length];
}
return result;
}
// Usage
var charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()';
var secureString = generateSecureString(32, charset);
console.log(secureString);
// Output: something like "kR9$mX2@pL7#nQ5vW8&jT4*bF6!cY3h"
Kes Penggunaan Biasa
- Penjanaan kata laluan: Sekurang-kurangnya 12-16 aksara, semua jenis aksara, sepenuhnya rawak
- Kunci API: 32-64 aksara alfanumerik, unik di seluruh sistem
- Pengecam unik: Untuk rekod pangkalan data dan sistem teragih
- Kod kupon: Rawak untuk mencegah ramalan dan penyalahgunaan
- Salt untuk pencincangan: Salt rawak unik untuk setiap kata laluan
Set Aksara dan Kekuatan Rentetan
Kekuatan rentetan rawak bergantung pada panjang dan saiz set aksara. Bersama-sama, ia menentukan entropi.
| Character Set | Pool Size | Entropy per Char | 8-char Entropy | 16-char Entropy | Brute Force (16 chars) |
|---|---|---|---|---|---|
| Lowercase only (a-z) | 26 | 4.7 bits | 37.6 bits | 75.2 bits | ~1,200 years |
| Lower + Upper (a-z, A-Z) | 52 | 5.7 bits | 45.6 bits | 91.2 bits | ~78 million years |
| Alphanumeric (a-z, A-Z, 0-9) | 62 | 5.95 bits | 47.6 bits | 95.2 bits | ~600 million years |
| All printable (a-z, A-Z, 0-9, symbols) | 94 | 6.55 bits | 52.4 bits | 104.8 bits | ~Trillions of years |
Amalan Terbaik
- Sentiasa gunakan CSPRNG
- Panjang mencukupi: 16+ aksara untuk kata laluan, 32-64 untuk kunci API
- Set aksara seluas mungkin
- Jangan sekali-kali guna semula rentetan rawak
- Simpan dengan selamat: bcrypt untuk kata laluan, kunci API dicincang, HTTPS untuk token
Menggunakan Penjana Rentetan Rawak Kami
Penjana Rentetan Rawak percuma kami mencipta rentetan selamat secara kriptografi:
- Tetapkan panjang: 1 hingga 256 aksara
- Pilih jenis aksara: Huruf besar, huruf kecil, nombor, aksara khas
- Kecualikan aksara samar: Untuk kod yang perlu ditaip secara manual
- Jana berbilang: Sehingga 100 rentetan sekaligus
Jana Rentetan Rawak Selamat
Gunakan Penjana Rentetan Rawak percuma kami untuk mencipta rentetan selamat secara kriptografi dengan serta-merta.