How to Generate a Random String with PHP
In the framework of this snippet, we will explain several ways of generating a unique, random string with the help of PHP arsenal.
Using the Brute Force
The first way is using the brute force. It is the simplest method that can be achieved by following the steps below:
Here is an example:
<?php
$n = 10;
function getRandomString($n)
{
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $n; $i++) {
$index = rand(0, strlen($characters) - 1);
$randomString .= $characters[$index];
}
return $randomString;
}
echo getRandomString($n);
Here is the first output:
3HDrSOvRIs
And, the second one:
lipHh
Applying Hashing Functions
In PHP, there are several functions such as md5(), sha1(), and hash() that might be applied for hashing a string based on exact algorithms such as “sha1”, “sha256”, “md5”, and so on.
All of these functions are capable of taking a string as an argument and output an Alpha-Numeric hashed string.
After understanding how to utilize the functions, the next steps become simpler:
- Generating a random number with the rand() function.
- Hashing it with one of the functions above.
Here is an example:
The output will look like this:
2e437510c181dd2ae100fc1661a445d4
Applying the Uniqid() Function
This is an inbuilt function that is applied for generating a unique ID built on the current time in microseconds. It returns a 13-character long unique string, by default.
The example is demonstrated below:
The first output is the following:
5bdd0b74e9a6c
Here is the second one:
5bdd0bbc200c4
Please, take into consideration that all the methods above are based on rand() and uniqid() functions. However, they are not considered cryptographically secure random generators.
Using Random_bytes() Function ( The Most Secured)
If you want to generate cryptographically secure pseudo random bytes that can be converted into a hexadecimal format with the bin2hex() function, then you should use the random_bytes function.
Here is an example:
Here is the first output:
235aed08a01468f90fa726bd56319fb893967da8
The second one:
508b84494cdf31bec01566d12a924c75d4baed39
So, in this snippet, we represented several ways to generate a random string with PHP. Learning them will make your work easier and more productive.