Jump24 - Laravel Developers that Click into Place. Never outsourced. Never offshored. Always exceptional.

Hashids

vinkla/hashids image

Hashids stats

Downloads
6.8M
Stars
5,065
Open Issues
0
Forks
418

View on GitHub →

A Hashids bridge for Laravel

Laravel Hashids Package Overview

The Hashids package is a PHP library designed to convert numeric identifiers into a short, unique, non-sequential hash, akin to YouTube's video IDs. This is particularly useful for developers looking to hide database numeric IDs from end users.

Key Features

  • Obfuscation of IDs: Converts numbers into a more user-friendly and non-sequential hash string.
  • Flexible Input Handling: Supports encoding from single, multiple numbers or arrays, and even hexadecimal values.
  • Customizable Hash Generation: Allows customization of hash output through salt, length, and custom alphabets.
  • Decoding Capability: Encoded strings can be easily decoded back to the original numbers.

Installation

To install Hashids, run the following Composer command in your project's root directory:

composer require hashids/hashids

Ensure you have one of the PHP extensions bcmath or gmp installed, as they are necessary for the package to function correctly.

Usage Examples

  1. Basic Encoding and Decoding:

    use Hashids\Hashids;
     
    $hashids = new Hashids();
    $id = $hashids->encode(1, 2, 3);
    $numbers = $hashids->decode($id);
  2. Customization:

    • Unique Salts: Different salts generate different hashes for the same input numbers.
    • Padding: Specify a minimum hash length.
    • Custom Alphabet: Define a custom alphabet for hash generation.
    • Hexadecimal Encoding: Encode and decode hexadecimal numbers.
    $hashids = new Hashids('My Project', 10, 'abcdefghijklmnopqrstuvwxyz');
    $id = $hashids->encode(1); // Custom length and alphabet

Important Notes

  • Output Format: Decoding always returns an array.
  • Non-Negative Inputs: Negative numbers cannot be encoded.
  • Error Handling: Invalid input to the encode() method returns an empty string.
  • Security: Hashids should not be used as a security measure or encryption tool.

Practical Use

While it does not offer security encryption, Hashids is excellent for obfuscating identifiers in public-facing elements like URLs, thereby preventing predictable sequential IDs and enhancing the aesthetic and security posture of web applications.

For more detailed information, visit the official Hashids documentation.

vinkla photo

I'm just Ken


Vinkla Hashids Related Articles

On-the-Fly Hashids with the Eloquent Hashids Package image

On-the-Fly Hashids with the Eloquent Hashids Package

Read article
Laravel Package: Optimus id transformation image

Laravel Package: Optimus id transformation

Read article
Laravel 5 Hashids image

Laravel 5 Hashids

Read article
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud