hackzilla/password-generator-bundle
A Symfony bundle that integrates the Hackzilla Password Generator library, providing a convenient service to create secure, configurable passwords with selectable character sets and options for use in Symfony applications.
0/O, 1/l), and whether you generate pronounceable/human-transcribable passwords for phone-support or read-aloud workflows. Having policy in config rather than code makes it reviewable by security and auditable in PRs.hackzilla/password-generator library directly, at which point the bundle's value proposition is effectively zero. The decision this drives is: for a Laravel codebase, treat this as a reference implementation, not a dependency — Laravel 10+ already ships Str::password() with length/letters/numbers/symbols/spaces arguments, which covers the same use case with a first-party, zero-dependency footprint.random_bytes() with a base64url encoding. Making that distinction explicitly at the product level prevents a well-intentioned engineer from reusing one generator for both.Adopt when all of the following hold:
Look elsewhere when:
Str::password() (Laravel 10+) or the underlying hackzilla/password-generator library directly. The bundle adds nothing outside Symfony.random_bytes() + base64url, or a dedicated token package. Human-readable password generators deliberately trade entropy density for typeability. Passphrases (diceware-style) are a different product too — confirm the library's scope before assuming.To executives: This is a small utility dependency that shortens delivery on a narrow feature — "generate password" buttons in admin tooling, onboarding, and demo provisioning. It is not a strategic build and shouldn't be resourced as one. Adoption cost is roughly a day; the alternative is writing equivalent code in-house for a similar cost. The real value is convention and configuration, not capability. Flag clearly: it is Symfony-only, so it does not apply if the product is Laravel — in that case the recommendation is to use the platform's built-in Str::password() and move on.
To engineering: It's a thin DI wrapper around hackzilla/password-generator: one service, length and charset configurable via bundle config, no runtime dependencies of consequence. Two asks before adoption: (1) pin the version and wrap the service behind your own PasswordGeneratorInterface so a swap — to Symfony's own primitives or a first-party implementation — is a one-file change; (2) keep it strictly out of the token/secret path, where random_bytes() is the correct primitive. Add a test asserting your policy constraints (min length, excluded ambiguous chars) so a config drift doesn't silently weaken defaults.
Risk framing to carry into the decision: 18 stars and a single maintainer mean this is a leaf dependency, not infrastructure. Treat it as such — vendor it if you like, wrap it regardless, and don't let it become load-bearing for anything security-sensitive.
How can I help you explore Laravel packages today?