1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | function generate(length = 10)
|
9 | {
|
10 | const groups = [
|
11 | '0123456789',
|
12 | 'abcdefghijklmnopqrstuvwxyz',
|
13 | 'ABCDEFGJIJKLMNOPQRSTUVWXYZ',
|
14 | '!@$%^*_'
|
15 | ];
|
16 |
|
17 | let availableOrder = [0, 1, 2, 3];
|
18 | let order = [];
|
19 |
|
20 | while (availableOrder.length > 0)
|
21 | {
|
22 | order.push(availableOrder.splice(Math.floor(Math.random() * availableOrder.length), 1)[0]);
|
23 | }
|
24 |
|
25 | let password = '';
|
26 |
|
27 | for (let i = 0; i < length; i++)
|
28 | {
|
29 | let currentGroup = groups[i % groups.length];
|
30 |
|
31 | password += currentGroup[Math.floor(Math.random() * currentGroup.length)];
|
32 | }
|
33 |
|
34 | return password;
|
35 | }
|
36 |
|
37 | module.exports = generate;
|