Skip to content

componenta/hasher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Componenta Hasher

Stream-aware content hashing contract and default implementation.

Use this package when services need to hash either an in-memory string or a PSR-7 stream through one small abstraction.

Installation

composer require componenta/hasher

Usage

use Componenta\Stdlib\Hasher;

$hasher = new Hasher('sha256');

$hash = $hasher->hash('content');
$sha1 = $hasher->withAlgorithm('sha1');

Hasher exposes the selected algorithm as read-only public state:

$hasher->algorithm; // sha256

withAlgorithm() returns a new immutable instance.

Contract

use Psr\Http\Message\StreamInterface;

interface HasherInterface
{
    public function hash(string|StreamInterface $input): string;
}

When a stream is passed, the default implementation rewinds the stream before hashing and rewinds it again after hashing. This lets callers pass the same stream to storage after computing its digest.

Related Packages

Package Why it matters here
componenta/file-hasher Hashes files by filename.
componenta/password Hashes passwords with PHP's dedicated password API.

About

Stream-aware content hashing contract and default implementation

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages