Генерация паролей с помощью omgopass
Установка
sudo apt update sudo apt -y install npm npm install omgopass --save
Создаём скрипт pass.mjs
vim pass.mjs
import g from "omgopass"; const rand = n => Math.floor(Math.random() * n); // shuffle (Fisher–Yates) const shuffle = a => { for (let i = a.length - 1; i > 0; i--) { const j = rand(i + 1); [a[i], a[j]] = [a[j], a[i]]; } return a; }; // колода цифр let deck = []; const nextDigit = () => { if (deck.length === 0) deck = shuffle([...Array(10).keys()]); return deck.pop(); }; const block = () => { const letters = g({ hasNumbers: false }) .replace(/[^\p{L}]/gu, "") .slice(0, 2) .split(""); const digits = [nextDigit(), nextDigit()].map(String); const res = Array(4); // допустимые пары позиций (без соседства) const positions = [ [0, 2], [0, 3], [1, 3] ]; const [p1, p2] = positions[rand(positions.length)]; res[p1] = digits[0]; res[p2] = digits[1]; let li = 0; for (let i = 0; i < 4; i++) { if (!res[i]) res[i] = letters[li++]; } return res.join(""); }; console.log(Array.from({ length: 20 }, block).join("-"));
Запуск генератора паролей pass.mjs
node pass.mjs
Алиас для запуска
alias pass1='node pass.mjs'
Базовые примеры
generatePassword({ hasNumbers: false }); // Пример: MunBedKod
generatePassword({ syllablesCount: 5 }); // Пример: Rot2Ba5Vim1My8Red4
generatePassword({ titlecased: false }); // Пример: si5co3ve8
Расширенная настройка
generatePassword({ syllablesCount: 4, minSyllableLength: 3, maxSyllableLength: 4, hasNumbers: false, titlecased: true, separators: "-_", vowels: "аеиоуэюя", consonants: "бвгджзклмнпрстчш" }); // Пример: Зер_Коти-Лов_Меч
Генерация passphrase
Длинные пароли, удобные для запоминания:
generatePassword({ minSyllableLength: 4, maxSyllableLength: 6, hasNumbers: false, titlecased: false, separators: " " }); // Пример: goferu lipeba cyzex
Доступные параметры
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
| syllablesCount | Количество слогов | 3 |
| minSyllableLength | Минимальная длина слога | 2 |
| maxSyllableLength | Максимальная длина слога | 3 |
| hasNumbers | Добавлять цифры в пароль | true |
| titlecased | Использовать заглавные буквы | true |
| vowels | Набор гласных | 'aeiouy' |
| consonants | Набор согласных | 'bcdfghklmnprstvz' |
| separators | Разделители между слогами |