From b1da50133b650b40171a63c34e6e3bdd9f150683 Mon Sep 17 00:00:00 2001 From: Grant Moyer Date: Tue, 12 Nov 2019 20:39:08 -0500 Subject: [PATCH] Remove "binning" from password generation --- app/scripts/util/generators/password-generator.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/scripts/util/generators/password-generator.js b/app/scripts/util/generators/password-generator.js index b8ce8390..0912a31c 100644 --- a/app/scripts/util/generators/password-generator.js +++ b/app/scripts/util/generators/password-generator.js @@ -1,6 +1,5 @@ import kdbxweb from 'kdbxweb'; import { phonetic } from 'util/generators/phonetic'; -import { shuffle } from 'util/fn'; const PasswordGenerator = { charRanges: { @@ -39,14 +38,17 @@ const PasswordGenerator = { if (!ranges.length) { return ''; } + const pool = []; + for (let i = 0; i < ranges.length; i++) { + pool.push(...ranges[i]); + } const randomBytes = kdbxweb.Random.getBytes(opts.length); const chars = []; for (let i = 0; i < opts.length; i++) { - const range = ranges[i % ranges.length]; const rand = Math.round(Math.random() * 1000) + randomBytes[i]; - chars.push(range[rand % range.length]); + chars.push(pool[rand % pool.length]); } - return shuffle(chars).join(''); + return chars.join(''); }, generateMac() {