Ne do të eksplorojmë mënyra të ndryshme për të gjeneruar vargje dhe karaktere të rastësishme në JavaScript.
Nga ana e serverit
Kur punoni në anën e serverit, ju keni akses në mjedisin e plotë Node.js, i cili përfshin bibliotekën crypto
. Kjo bibliotekë ofron një mënyrë të integruar për të gjeneruar vargje dhe karaktere të rastësishme kriptografikisht të sigurta.
const crypto = require('crypto');
function generateRandomString(length) {
return crypto.randomBytes(Math.ceil(length / 2))
.toString('hex')
.slice(0, length);
}
console.log(generateRandomString(10));
Në këtë shembull, ne përdorim metodën randomBytes()
të bibliotekës crypto
për të gjeneruar një tampon të rastësishëm bajtesh. Ne pastaj i konvertojmë këto bajt në një varg heksadecimal duke përdorur metodën toString()
. Së fundi, ne përdorim metodën slice()
për të nxjerrë numrin e dëshiruar të karaktereve nga vargu heksadecimal.
Nga ana e klientit
Kur punoni në anën e klientit, metoda crypto.getRandomValues()
ju lejon të merrni vlera të rastësishme kriptografikisht të forta. Vargu i dhënë si parametër është i mbushur me numra të rastësishëm (të rastësishëm në kuptimin e tij kriptografik).
function generateId (len) {
var arr = new Uint8Array((len || 40) / 2)
window.crypto.getRandomValues(arr)
return Array.from(arr, dec2hex).join('')
}
console.log(generateId())
Në këtë shembull, ne krijojmë një variabël result
dhe një grup karakteresh që duam të përdorim për të gjeneruar vargun e rastësishëm. Më pas përdorim një lak for për të gjeneruar një indeks të rastësishëm brenda gamës së grupit dhe përdorim metodën charAt()
për të marrë karakterin në atë indeks. Ne e shtojmë atë karakter në ndryshoren result
në çdo përsëritje të ciklit.
Paketat npm
Nëse dëshironi një opsion edhe më të sigurt dhe të gjithanshëm, mund të përdorni paketa dhe biblioteka npm si randomstring
dhe uuid
që mund të përdoren për të gjeneruar vargje të rastësishme në formate të ndryshme.
const uuidv4 = require('uuid/v4');
console.log(uuidv4());
Paketa uuid
mund të përdoret për të gjeneruar identifikues universalë unikë (UUID) të cilët janë unikë në të gjitha pajisjet dhe në çdo kohë.