Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Hash Laravel Package

php-standard-library/hash

Hash utilities for PHP: cryptographic and non-cryptographic hashing via an Algorithm enum, HMAC helpers, and timing-safe string comparison. Lightweight package from PHP Standard Library for consistent, secure hashing across projects.

View on GitHub
Deep Wiki
Context7

Cryptographic and non-cryptographic hashing with Algorithm enum, timing-safe comparison, and HMAC

Frequently asked questions about Hash
Can I use php-standard-library/hash for password hashing in Laravel instead of Laravel’s built-in Hash facade?
No, avoid using this package for password hashing. Laravel’s Hash facade (with password_hash()) is purpose-built for security and includes salt handling. This package is designed for non-password hashing like checksums, cache keys, or data integrity checks. Use the Hash facade exclusively for passwords.
How do I install php-standard-library/hash in a Laravel project?
Run `composer require php-standard-library/hash` in your project root. No additional Laravel-specific setup is required—it’s a standalone Composer package. Autoloading is handled automatically. For integration with Laravel’s service container, wrap it in a Service Provider.
Which Laravel versions and PHP versions does this package support?
The package supports PHP 8.1+ and is compatible with Laravel 10 and 11. It has no Laravel-specific dependencies, so it works as long as your project meets these PHP requirements. Always check the package’s documentation for updates on supported versions.
Does this package support timing-safe string comparison like Laravel’s Hash::check()?
Yes, the package includes timing-safe comparison methods to prevent brute-force attacks. This is especially useful for verifying hashes (e.g., HMAC or checksums) where security is critical. Use it alongside Laravel’s Hash facade for a layered security approach.
How do I generate an HMAC using this package in Laravel?
Use the `HashGenerator` class to create an HMAC. For example: `$hmac = HashGenerator::generate('sha256', 'your-data', 'your-secret-key');`. The package provides an `Algorithm` enum to specify the hashing algorithm. Integrate this into your Laravel services or controllers as needed.
Will this package conflict with Laravel’s Hash facade or other hashing libraries?
No, it won’t conflict directly, but avoid mixing it with Laravel’s Hash facade for password hashing. This package is for non-password use cases. If you’re using Symfony’s SecurityComponent or other libraries, ensure no duplicate algorithm implementations exist to prevent confusion or performance overhead.
How do I test the hashing functionality in my Laravel application?
Write unit tests to verify hash generation and comparison. Mock the `HashGenerator` class and test edge cases like empty strings, binary data, or timing attacks. Use PHPUnit assertions to compare outputs with expected values. Example: `assertEquals($expectedHash, HashGenerator::generate('sha256', $input));`.
Is this package suitable for production use in Laravel applications?
Yes, it’s production-ready for non-password hashing tasks. The package is lightweight, MIT-licensed, and follows security best practices like timing-safe comparisons. However, monitor its maintenance status (currently low community activity) and consider falling back to native PHP functions if needed.
Can I use this package for file checksums or data integrity verification?
Absolutely. This package is ideal for generating checksums (e.g., SHA-256) for files, API responses, or database records. Example: `$checksum = HashGenerator::generate('sha256', file_get_contents($filePath));`. It’s more secure and consistent than using PHP’s built-in `hash()` function directly.
What are the alternatives to php-standard-library/hash for hashing in Laravel?
For password hashing, use Laravel’s built-in `Hash` facade. For general-purpose hashing, alternatives include PHP’s native `hash()` function, Symfony’s `SecurityComponent`, or libraries like `paragonie/sodium_compat`. This package stands out for its algorithm enum, HMAC support, and timing-safe comparisons in a single, modular package.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai