генератор пароля JavaScript

Каков был бы лучший подход к созданию 8 символьных случайных паролей, содержащих a-z, A-Z и 0-9?

Абсолютно никакие проблемы безопасности, это просто для разработки прототипа, я просто хочу данные, которые выглядят реалистичными.

Я думал a for (0 to 7) Math.random произвести коды ASCII и преобразовать их в символы. У Вас есть какие-либо другие предложения?

57
задан 30 September 2009 в 15:12

2 ответа

Вот быстрое динамическое современное решение, которое я думал, что совместно использую

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
}
0
ответ дан 1 November 2019 в 15:15

Этот метод дает опции изменить размер и набор символов Вашего пароля.

function generatePassword(length=8, charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") {
    return new Array(length)
      .fill(null)
      .map(()=> charset.charAt(Math.floor(Math.random() * charset.length)))
      .join('');
}

console.log(generatePassword()); // 02kdFjzX
console.log(generatePassword(4)); // o8L5
console.log(generatePassword(16)); // jpPd7S09txv9b02p
console.log(generatePassword(16, "abcd1234")); // 4c4d323a31c134dd
0
ответ дан 1 November 2019 в 15:15

Другие вопросы по тегам:

Похожие вопросы: