87 votes

générateur de mot de passe en javascript

Quelle serait la meilleure approche pour créer un mot de passe aléatoire de 8 caractères contenant a-z , A-Z y 0-9 ?

Il n'y a absolument aucun problème de sécurité, il s'agit simplement d'un prototypage, je veux juste des données qui semblent réalistes.

Je pensais à un for (0 to 7) Math.random pour produire des codes ASCII et les convertir en caractères. Avez-vous d'autres suggestions ?

0voto

PerKristian Points 517

Voici une classe Javascript gratuite et configurable générant des mots de passe aléatoires : Générateur de mot de passe aléatoire en Javascript .

Exemples

Mot de passe composé de minuscules + majuscules + chiffres, de 8 caractères :

var randomPassword = new RandomPassword();
document.write(randomPassword.create());

Mot de passe composé de minuscules + majuscules + chiffres, 20 caractères :

var randomPassword = new RandomPassword();
document.write(randomPassword.create(20));

Mot de passe composé de minuscules + majuscules + chiffres + symboles, 20 caractères :

var randomPassword = new RandomPassword();
document.write(randomPassword.create(20,randomPassword.chrLower+randomPassword.chrUpper+randomPassword.chrNumbers+randomPassword.chrSymbols));

0voto

mycoin Points 11
var createPassword = function() {
  var passAt = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  var passArray = Array.from({length: 15})

  return passArray.map(function(_, index) { 
    return index % 4 == 3 ? '-' : passAt.charAt(Math.random() * passAt.length)
  }).join('')
}

résultat comme :

L5X-La0-bN0-UQO
9eW-svG-OdS-8Xf
ick-u73-2s0-TMX
5ri-PRP-MNO-Z1j

0voto

Shay Points 1871

Voici une solution moderne et dynamique que j'ai pensé partager.

const generatePassword = (
  passwordLength = 8,
  useUpperCase = true,
  useNumbers = true,
  useSpecialChars = true,
) => {
  const chars = 'abcdefghijklmnopqrstuvwxyz'
  const numberChars = '0123456789'
  const specialChars = '!"£$%^&*()'

  const usableChars = chars
   + (useUpperCase ? chars.toUpperCase() : '')
   + (useNumbers ? numberChars : '')
   + (useSpecialChars ? specialChars : '')

  let generatedPassword = ''

  for(i = 0; i <= passwordLength; i++) {
    generatedPassword += usableChars[Math.floor(Math.random() * (usableChars.length))]
  }

  return generatedPassword
}

0voto

sasha romanov Points 377
const length = 18; // you can use length as option or static
const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const numbers = '0123456789';
const symbols = '!#$%&\()*+,-./:;<=>?@^[\\]^_`{|}~';

let password = '';

let validChars = '';

// all if conditions can be used to custom password
if (useLetters) {
    validChars += letters;
}

if (useNumbers) {
    validChars += numbers;
}

if (useSymbols) {
    validChars += symbols;
}

let generatedPassword = '';

for (let i = 0; i < length; i++) {
    const index = Math.floor(Math.random() * validChars.length);
    generatedPassword += validChars[index];
}

password = generatedPassword;

0voto

Front Cutted Points 11

Ce n'est pas très difficile. Vous devez simplement vous familiariser avec ses concepts. Vous devez apprendre :

  1. Fonctions
  2. Variables
  3. Travailler avec des cordes
  4. Mathématiques
  5. boucles
  6. DOM (si vous travaillez avec HTML) et le code est

    function gen(){ // Save all the possible characters in a variable var chars = "abcdef"; // make an empty variable to store random characters. var pw = ""; // we need loop. // repeat four times then we have password with 4 characters for (var i=0; i<4; i++){ // select random character var rand = Math.round(Math.random() * chars.length); // insert that random character to pw variable var pw += chars.charAt(rand); } // then return pw // Use console.log() || DOM || "return pw" return pw; }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X