Enhance your string manipulation with Str::random() in Laravel

Harris Raftopoulos
2 min readJul 8, 2024

Generating random strings is a common requirement in web development, especially for creating tokens, passwords, and unique identifiers. Laravel’s Str::random() function provides an easy and efficient way to generate random strings of a specified length. Let’s dive into how Str::random() can enhance your string manipulation in Laravel projects.

Understanding Str::random()

The Str::random() function is part of the Illuminate\Support\Str class. It generates a random string of the specified length using a pool of alphanumeric characters. This is particularly useful for creating secure and unique tokens or identifiers.

Basic Usage

Here’s a basic example to illustrate how Str::random() works:

use Illuminate\Support\Str;

$randomString = Str::random(16);

echo $randomString; // Output: A random 16-character string

In this example, Str::random(16) generates a random string of 16 characters. The resulting string consists of random alphanumeric characters.

Real-Life Example

Imagine you are building a web application that requires generating unique API tokens for users. Here’s how you can use Str::random() to create these tokens:

use Illuminate\Support\Str;

class ApiTokenController extends Controller
{
public function generateToken(Request $request)
{
$user = $request->user();
$token = Str::random(60);

// Save the token to the database
$user->api_token = hash('sha256', $token);
$user->save();

return response()->json(['token' => $token]);
}
}

In this example, the generateToken method creates a 60-character random string using Str::random(). The generated token is then hashed for additional security and stored in the database.

Conclusion

The Str::random() function in Laravel is a powerful tool for generating random strings. Whether you need to create secure tokens, unique identifiers, or random passwords, Str::random() provides a simple and efficient solution. Incorporate this function into your projects to enhance your string manipulation capabilities and improve security.

--

--

Harris Raftopoulos

Senior Software Engineer | 15+ years in PHP, 11+ with Laravel | Expert in Livewire, TailwindCSS & VueJS | DevOps Enthusiast | 🎤Speaker at Athens Laravel Meetup