Генеруйте безпечні й легко запам'ятовувані passphrases у PHP за допомогою PHP Passphrase

Перекладено ШІ 1 Laravel News 02 червня, 2026

Потрібні зручні й безпечні тимчасові паролі для вашого Laravel‑проєкту? PHP Passphrase генерує читабельні пасфрази за методом EFF, має вбудовану підтримку Laravel, підтримку кастомних словників і просте налаштування.

Фрази-паролі з'єднують кілька випадкових слів, наприклад sphere-quartz-bright-flame, щоб отримати облікові дані, які одночасно безпечні та легкі для читання й запам’ятовування. PHP Passphrase, створений Nico Bleiler, генерує такі фрази за рекомендованою EFF методикою, комбінуючи випадкові слова з EFF long word list. Пакет відтворює реалізацію Bitwarden на Rust і має вбудовану підтримку Laravel, а також можливість роботи як самостійна PHP-бібліотека.

Пакет корисний для додатків, які генерують тимчасові паролі або коди відновлення, або в будь-яких випадках, коли людсько-зрозуміла та безпечна послідовність слів краща за випадкову рядкову комбінацію символів.

Основні можливості

PHP Passphrase пропонує кілька опцій для генерації фраз-паролів:

  • Сумісні з Bitwarden опції — кількість слів, роздільники, капіталізація, додавання числа
  • Використовує EFF long word list (7 776 слів), який пакетується та кешується для швидкого генератора
  • Користувацькі списки слів — з файлів або масивів
  • Інтеграція з Laravel через service provider, фасад, dependency injection та публікаційний конфіг
  • Самостійне використання без Laravel або іншого фреймворку

Початок роботи

Встановіть пакет через Composer:

composer require nicobleiler/php-passphrase

Laravel автоматично знайде service provider. Додаткових налаштувань не потрібно, щоб почати генерувати фрази.

Генерація фраз-паролів

У Laravel використовуйте фасад Passphrase для генерації:

use NicoBleiler\Passphrase\Facades\Passphrase;
 
// Default: 3 words, hyphen separator, no capitalize, no number
Passphrase::generate();
// "unadvised-stubble-squid"
 
// Customize the output
Passphrase::generate(
    numWords: 5,
    wordSeparator: '~',
    capitalize: true,
    includeNumber: true,
);
// "Reggae~Blip~Prayer~Tabasco~Football5"

Впровадження залежностей

Пакет реєструє PassphraseGenerator як singleton у контейнері Laravel, тож його можна інжектити в класи:

use NicoBleiler\Passphrase\PassphraseGenerator;
 
class AuthController
{
    public function __construct(
        private PassphraseGenerator $passphrase,
    ) {}
 
    public function temporaryPassword(): string
    {
        return $this->passphrase->generate(
            numWords: 4,
            capitalize: true,
            includeNumber: true,
        );
    }
}

Самостійне використання

Пакет працює й без Laravel. Створіть екземпляр PassphraseGenerator напряму:

use NicoBleiler\Passphrase\PassphraseGenerator;
 
$generator = new PassphraseGenerator();
echo $generator->generate(); // "zone-statue-corporal"

Користувацькі списки слів

Клас WordList підтримує завантаження слів з файлів або масивів:

use NicoBleiler\Passphrase\WordList;
use NicoBleiler\Passphrase\PassphraseGenerator;
 
// From a file (plain text or EFF diceware format)
$wordList = WordList::fromFile('/path/to/wordlist.txt');
 
// From an array
$wordList = WordList::fromArray([
    'pizza',
    'whisk',
    'juice',
    'beyond',
    'quartz',
    'flame',
    'vortex',
    'bright',
    'sphere',
]);
 
$generator = new PassphraseGenerator($wordList);
echo $generator->generate(numWords: 4);

У Laravel ви можете вказати шлях до власного файлу списку слів через опублікований конфіг:

php artisan vendor:publish --tag=passphrase-config

Потім вкажіть шлях у config/passphrase.php:

'word_list_path' => resource_path('wordlists/my-custom-list.txt'),

Налаштування

Опублікований файл конфігурації дозволяє задати значення за замовчуванням для всіх опцій генерації:

return [
    'num_words' => 3,
    'word_separator' => '-',
    'capitalize' => false,
    'include_number' => false,
 
    // null = bundled EFF long word list
    // Or set an absolute path to a custom word list file
    'word_list_path' => null,
];

Щоб дізнатися більше про PHP Passphrase та переглянути вихідний код, відвідайте репозиторій на GitHub.

Популярні

Інше, що варто прочитати

15 Оновлено 01 червня, 2026

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!

173 Оновлено 01 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

83 Оновлено 01 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?