StrGen

PHP library for simple, secure random string generation (e.g. - passwords / salts).

MIT License

Downloads
27.7K
Stars
21
Committers
4

Requirements

Install with Composer

composer require phlak/strgen

Usage

// Import StrGen
use PHLAK\StrGen;

// Initialize the Generator
$generator = new StrGen\Generator();

// Generate a random string of characters
$generator->length(16)->generate(); // Returns something like '8a*Ag@I0*s0v[S3u'

Character Sets

StrGen has a few built-in character sets available for ease of use. You can specify which set(s) to use by passing a character set or an array of sets to the charset() method.

Example using built-in sets:

$generator = new StrGen\Generator();

$generator->charset(StrGen\CharSet::ALPHA_NUMERIC)->generate();

// or

$generator->charset([StrGen\CharSet::MIXED_ALPHA, StrGen\CharSet::NUMERIC])->generate();

Available presets:

Key Character Set
StrGen\CharSet::LOWER_ALPHA abcdefghijklmnopqrstuvwxyz
StrGen\CharSet::UPPER_ALPHA ABCDEFGHIJKLMNOPQRSTUVWXYZ
StrGen\CharSet::MIXED_ALPHA abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
StrGen\CharSet::NUMERIC 0123456789
StrGen\CharSet::ALPHA_NUMERIC abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
StrGen\CharSet::SPECIAL !@#$%^&*()-_=+.?{}[]<>:;/\|~
StrGen\CharSet::ALL abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+.?{}[]<>:;/\|~

Custom sets:

You can also manually define a character set by passing a string of characters to the charset() method.

$generator = new StrGen\Generator();

$generator->charset('0123456789abcdef')->generate();

Convenience Functions

StrGen also has built-in convenience functions for generating strings from the included character sets or a custom character set.

$generator->lowerAlpha($length);
$generator->upperAlpha($length);
$generator->mixedAlpha($length);
$generator->numeric($length);
$generator->alphaNumeric($length);
$generator->special($length);
$generator->all($length);
$generator->custom($length, $charset);

Changelog

A list of changes can be found on the GitHub Releases page.

Troubleshooting

For general help and support join our Spectrum community.

Please report bugs to the GitHub Issue Tracker.

Copyright

This project is licensed under the MIT License.