OpenSSL comes in handy when you need to generate random passwords, for example for system accounts and services. In this short post I’ll give you a quick example on how to generate random passwords with OpenSSL in Linux (Bash), Windows and PHP…
In this post you’ll learn how to create pseudo-random strings with OpenSSL. Random strings you can use as secure passwords.
Pseudo-random strings with OpenSSL
The OpenSSL rand
command can be used to create random passwords for system accounts, services or online accounts. The rand command outputs num pseudo-random bytes after seeding the random number generator once. The -hex
argument tells openssl to show the output as a hex string. You can also use -base64
.
You only have to decide the byte-length of your password or string, whether you want hexadecimal or base64, and OpenSSL does all the calculations.
For example an 8 byte pseudo-random string, hex encoded output:
$ openssl rand -hex 8
28dbc04b1a90fbf4
Code language: Bash (bash)
Or an 8 byte random string, base64 encoded output:
$ openssl rand -base64 8
7UON8PQIYHg=
Code language: Bash (bash)
Using OpenSSL to generate random passwords in Windows
If you have installed OpenSSL on Windows, you can use the same openssl.exe
command on Windows to generate a pseudo-random password or string:
PS C:\Users\Jan Reilink> &"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" rand -hex 8
fa2af455f4425c9b
PS C:\Users\Jan Reilink> &"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" rand -base64 8
tYHpFYAZ4C0=
Code language: PowerShell (powershell)
These makes ideal passwords, easily generated with openssl.exe in Windows 11 or Windows 10 :) .
PHP OpenSSL – create a pseudo-random password with PHP and OpenSSL
In PHP you can use openssl_random_pseudo_bytes(), with bin2hex() for readability:
<?php
var_dump(
bin2hex(
openssl_random_pseudo_bytes( 8, $cstrong )
)
);
?>
Code language: PHP (php)
Yes, hexadecimal strings are all lower-case… All you need now is a way to remember these generated strings and passwords… ;-)
Random passwords with PowerShell (#PSTip – Bonus)
Use PowerShell to create a random password:
1..14 | ForEach {
$my_passwd = $my_passwd + [char](New-Object System.Random( (get-date).Millisecond + $_ )).next(65,127)
}
Code language: PowerShell (powershell)
or add the following Get-RandomString
function to your PowerShell $PROFILE
.
Show Your Support

If you want to step in to help me cover the costs for running this website, that would be awesome. Just use this link to donate a cup of coffee ☕($10 USD or €10 EUR for example). And please share the love and help others make use of this website. Thank you very much! <3 ❤️