Skip to content

One-liner password generation in PHP

2 pointssgarbi4 comments
On HN

How would you improve this one-liner?

$password = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$'),0 , 10);

Comments

$password = str_shuffle((substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ'),0,3).substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'),0,3).substr(str_shuffle('0123456789'),0,2).substr(str_shuffle('!@#$'),0,2)));

With that it will always contain 3 capital letters, 3 lower case letters, 2 numbers, and 2 punctuation.

I would remove "i"/"I", or 1. I would similarly remove one of zero and the letter-o.

These can be confusing to people, depending on fonts.

variable length maybe

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.