phlak/strgen

Generate secure random strings (e.g. passwords / salts)

3.0.0 2018-01-25 03:29 UTC

README

StrGen

Join the Community Become a Sponsor One-time Donation
Latest Stable Version Total Downloads License 68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636865636b732d7374617475732f50484c414b2f53747247656e2f6d61737465723f7374796c653d666c61742d737175617265

PHP library for simple secure random string generation (e.g. - passwords / salts)
Created by Chris Kankiewicz (@PHLAK)

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 abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
StrGen\CharSet::NUMERIC 0123456789
StrGen\CharSet::ALPHA_NUMERIC abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
StrGen\CharSet::SPECIAL !@#$%^&*()-_=+.?{}[]<>:;/\|~
StrGen\CharSet::ALL abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
!@#$%^&*()-_=+.?{}[]<>:;/\|~

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.