☰ FonctionsUtilesJavascript
 

Fonctions utiles en javascript

xor

str et key doivent être des chaînes hexa minuscules (caractères de 0 à 9 et de a à f) de longueur paire.
Un xor est retourné en hexa sur la représentation en bits de ces chaînes.

function xor(str, key){
  var ar = []
  for (var i = 0, L = str.length, LKey = key.length; i< L; i=i+2){
    var x = parseInt(str.substr(i , 2),16) ^ parseInt(key.substr(i % LKey , 2),16)
    ar.push(('0' + x.toString(16)).substr(-2))
  }
  return ar.join('')
}

randomInt

Retourne un entier aléatoire compris entre low et hight (inclus).

function randomInt(low, high) {
  return Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0] / 0x100000000 * (high - low + 1) + low);
}

Sans utiliser window.crypto:

function randomInt(low, high) {
  return Math.floor(Math.random() * (high - low + 1)) + low;
}

randomHexa

Retourne une chaîne hexa aléatoire minuscule de longueur len paire

function randomHexa(len) {
  var arr = new Uint8Array(len / 2)
  window.crypto.getRandomValues(arr)
  return Array.from(arr, function(x){return ('0' + x.toString(16)).substr(-2)}).join('')
}

Sans utiliser window.crypto:

function randomHexa(len) {
  var arr = []
  for (var i = 0, L = len/2; i < L; i++) arr.push(Math.floor(Math.random() * 256))
  return Array.from(arr, function(x){return ('0' + x.toString(16)).substr(-2)}).join('')
}

randomString

Retourne une chaîne aléatoire composée de len caractères de alphabet,
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 par défaut.
Dépend de randomInt défini plus haut dans cette page.

function randomString(len, alphabet){
  alphabet = alphabet || 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  alphabet = alphabet.split('');
  var L = alphabet.length;
  output = '';
  for (var i = 0; i < len; i++) output += alphabet[randomInt(0, L-1)];
  return output;
}