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ë.