Cara Menjana Rentetan Rawak dalam JavaScript
- 1781
- 372
- Dana Hammes
Rentetan rawak digunakan untuk pelbagai tujuan dalam pembangunan perisian. Sebagai contoh, mereka boleh digunakan untuk kod ID pengguna, menjana kata laluan, dan membina token dalam aplikasi. Sekiranya anda membangunkan program berasaskan JavaScript yang memerlukan rentetan rawak - atau mana -mana jenis data pseudo -rawak lain - maka artikel ini adalah untuk anda! Anda lihat, menjana aksara rawak (atau rentetan) mudah dengan alat dan teknik yang betul. Nasib baik, artikel ini merangkumi dengan tepat. Mari kita mulakan…
Mengapa kita memerlukan rentetan rawak?
Rentetan rawak digunakan untuk membina token, ID pengguna, dan kata laluan dalam perisian. Katakan anda ingin membina sistem log masuk untuk aplikasi web. Anda perlu memberikan pengguna setiap pengguna ID log masuk yang unik untuk membolehkan mereka log masuk. Anda boleh membuat rentetan aksara rawak untuk bertindak sebagai ID pengguna. Perkara yang sama berlaku untuk token pengguna, yang digunakan oleh pelbagai sistem. Rentetan rawak juga berguna untuk menjana jualan. Garam adalah rentetan rawak yang digunakan untuk menambah keselamatan tambahan ke sistem log masuk. Ia menjadikan lebih sukar bagi penggodam untuk menjadi kekerasan atau log masuk ke sistem anda kerana mereka harus meneka garam yang unik untuk setiap pengguna.
Cara untuk menjana rentetan rawak dalam javascript
Bahagian ini membincangkan empat kaedah yang membolehkan anda menghasilkan rentetan rawak dalam javascript.
- Buat kaedah tersuai untuk menjana rentetan rawak.
- Menggunakan matematik.kaedah rawak () untuk menjana rentetan rawak.
- Menggunakan crypto.kaedah getRandomValues () untuk menjana rentetan rawak.
- Menggunakan perpustakaan urng untuk menjana rentetan rawak - mari kita bincangkan setiap kaedah secara terperinci.
1. Buat kaedah tersuai untuk menjana rentetan rawak
Anda boleh membuat kaedah tersuai untuk menghasilkan rentetan rawak. Di sini kita menentukan perkataan, nombor, dan watak khas. Anda boleh memanggil fungsi JavaScript ini pada bila -bila masa untuk menghasilkan rentetan rawak
fungsi genrandonstring (panjang) var chars = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*() '; var charlength = chars.panjang; var result = "; untuk (var i = 0; i < length; i++ ) result += chars.charAt(Math.floor(Math.random() * charLength)); return result; console.log(genRandonString(12));1234567891011 | fungsi genRandonstring (panjang) var chars = '[e -mel dilindungi]#$%^&*()'; var charlength = chars.panjang; var result = "; untuk (var i = 0; i < length; i++ ) result += chars.charAt(Math.floor(Math.random() * charLength)); return result; console.log(genRandonString(12)); |
2. Menggunakan matematik.kaedah rawak () untuk menjana rentetan rawak
The Matematik.rawak ()
kaedah mengembalikan nombor pseudorandom antara 0 dan 1. Kaedah ini menggunakan tarikh dan masa semasa sebagai sumber entropi. Dalam JavaScript, rentetan diwakili oleh urutan watak antara dua petikan berganda (""). Oleh kerana rentetan hanyalah urutan watak, kita boleh menggunakan matematik.kaedah rawak () untuk menghasilkan rentetan rawak. Mari lihat contoh asas di mana kita membina rentetan rawak menggunakan matematik.kaedah rawak (). Mari tulis program JavaScript yang mencipta rentetan menggunakan matematik.Kaedah rawak.
123456 | var randomstring = ""; RandomString += Matematik.rawak (); RandomString += Matematik.rawak (); RandomString += Matematik.rawak (); konsol.log (rawak); |
Program ini mewujudkan rentetan rawak dan log ke konsol JavaScript. Anda dapat melihat di tangkapan skrin di bawah, rentetannya benar -benar rawak.
Menggunakan crypto.kaedah getRandomValues () untuk menjana rentetan rawak
The Crypto.getRandomValues ()
Kaedah Mengembalikan urutan pseudorandom bait dari penjana nombor rawak kriptografi. Kaedah ini adalah sebahagian daripada API Crypto JavaScript. Mari kita lihat contoh di mana kita menggunakan crypto.kaedah getRandomValues () untuk menghasilkan rentetan rawak. Mari tulis program JavaScript yang mencipta rentetan menggunakan crypto.Kaedah getRandomValues.
12345 | var randomstring = ""; RandomString += Crypto.GetRandomValues (16).ToString (16); konsol.log (rawak); |
Dalam program ini, kami membuat rentetan rawak menggunakan crypto.kaedah getRandomValues () dengan melewati 16 sebagai hujah. Melakukan ini mengarahkan kaedah untuk mengembalikan 16 bait rawak. Mari lihat output program ini dalam tangkapan skrin di bawah.
Menggunakan perpustakaan urng untuk menjana rentetan rawak
Terdapat beberapa perpustakaan yang tersedia untuk menjana data rawak dalam javascript. Satu perpustakaan sedemikian adalah perpustakaan penjana nombor rawak sejagat (URNG). Perpustakaan boleh dipasang dari npm atau dari npm jika anda menggunakan javascript di backend. Mari kita lihat contoh di mana kita menggunakan perpustakaan urng untuk menghasilkan rentetan rawak. Mari Tulis Program JavaScript yang Membuat Rentetan Menggunakan Perpustakaan Urng.
var randomstring = ""; RandomString += Urng.generaterandomstring (15); konsol.log (rawak);123 | var randomstring = ""; RandomString += Urng.generaterandomstring (15); konsol.log (rawak); |
Dalam program ini, kami membuat rentetan rawak menggunakan perpustakaan urng dengan melewati 15 sebagai hujah. Melakukan ini mengarahkan perpustakaan untuk mengembalikan 15 aksara. Mari lihat output program ini dalam tangkapan skrin di bawah.
Kesimpulan
Dalam artikel ini, kita membincangkan mengapa kita memerlukan rentetan rawak dan empat kaedah yang berbeza untuk menghasilkannya dalam JavaScript. Mari kita meringkaskan petua yang dibincangkan dalam artikel ini. Pertama, ingat bahawa rawak adalah keadaan ketidakpastian. Dengan kata lain, ia adalah kekurangan corak yang konsisten. Jadi, apa -apa yang tidak dapat diramalkan dianggap secara rawak. Seterusnya, pastikan anda tidak menggunakan matematik.rawak () untuk menjana data bukan rawak. Ia direka untuk menghasilkan urutan nombor yang tidak dapat diramalkan. Jadi, jangan gunakannya untuk menghasilkan nombor dengan corak tertentu. Akhirnya, ingatlah untuk melaksanakan penyelesaian yang menghasilkan rentetan rawak yang tidak berulang menggunakan sumber data rawak. Melakukan ini memastikan bahawa setiap rentetan adalah unik dan tidak dapat diramalkan.