componenta/password 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

componenta/password

Composer 安装命令:

composer require componenta/password

包简介

Password hashing contract and default implementation

README 文档

README

Password hashing and password verification contracts backed by PHP's native password API.

Use this package when application code should depend on small password abstractions instead of calling password_hash() and password_verify() directly.

Installation

composer require componenta/password

Usage

use Componenta\Stdlib\PasswordHasher;

$hasher = new PasswordHasher(options: ['cost' => 12]);

$hash = $hasher->hash('secret');

$hasher->verify('secret', $hash); // true
$hasher->needsRehash($hash);      // false when algorithm/options still match

PasswordHasher exposes its configuration as read-only public state:

$hasher->algorithm; // PASSWORD_BCRYPT by default
$hasher->options;   // options passed to password_hash()

$argon = $hasher->withAlgorithm(PASSWORD_ARGON2ID);
$stronger = $hasher->withOptions(['cost' => 13]);

withAlgorithm() and withOptions() return new immutable instances.

Contracts

PasswordHasherInterface is intentionally limited to creating hashes:

interface PasswordHasherInterface
{
    public function hash(string $password): string;
}

PasswordVerifierInterface is intentionally limited to checking hashes:

interface PasswordVerifierInterface
{
    public function verify(string $password, string $hash): bool;
}

Depend on only the operation a service actually needs. A password reset handler usually needs PasswordHasherInterface; an identity confirmation policy usually needs PasswordVerifierInterface.

The default PasswordHasher implements both interfaces and additionally exposes needsRehash(string $hash): bool so applications can migrate stored hashes when algorithm options change.

Configuration

The constructor accepts:

  • algorithm: passed to PHP's password API.
  • options: passed to password_hash() and password_needs_rehash().

Keep policy decisions such as minimum password length and breach checks in validation/application code. This package only hashes and verifies already accepted password strings.

Related Packages

Package Why it matters here
componenta/auth Uses the password contracts in password-login and reset flows.
componenta/validation Validates password length and complexity before hashing.
componenta/di Can bind PasswordHasherInterface and PasswordVerifierInterface in the application container.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-17