Laravel Packages

Laravel Database Hashing Package

Published
Laravel Database Hashing Package image

The Laravel Database Hashing package is a Laravel +5.5 package by Jack Noordhuis for automatically hashing database attributes. When enabled it automatically hashes data stored in model attributes.

It works by using a trait in combination with a class property:

<?php
 
use jacknoordhuis\database\hashing\traits\HasHashedAttributes;
 
class User extends Eloquent {
use HasHashedAttributes;
 
/**
* The attributes that should be hashed on save.
*
* @var array
*/
protected $hashing = [
"username_lookup",
];
}

Here’s an example from the README that demonstrates using a password as a salt modifier so that the hash can only be re-created when the user provides their valid password:

$user->username_lookup = $user->hashAttribute($username, $password);

You can then find the given user with the following query, using the DatabaseHashing facade provided by this package:

User::where(
"username_lookup",
"=",
\DatabaseHashing::create($request->get("username"), $request->get("password"))
);

I noticed that this package wasn’t ready for Laravel 5.7, which is the latest at the time of writing, but supports Laravel 5.5 and 5.6. If you want to help get this package ready for Laravel 5.7, you can learn about this package on GitHub at JackNoordhuis/laravel-database-hashing.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article