ekinhbayar/hautelook-phpass

便携式PHP密码哈希框架

1.1.0 2012-08-31 00:00 UTC

This package is auto-updated.

Last update: 2024-09-15 00:13:15 UTC


README

此存储库仅存在,因为hautelook/phpass存储库已被删除。我计划添加测试,并可能在未来某个时候尝试创建PHP ^8版本,但我无法保证一定会维护此库。

Openwall Phpass,现代化版本

Build Status HHVM Status

这是基于0.3版本的Openwall的Phpass,但稍作现代化处理

  • 命名空间化
  • Composer支持(自动加载)
  • PHP 5风格
  • 单元测试

更改很小,主要是风格上的。源代码属于公共领域。我们声称不拥有所有权,但需要它用于我们的一个项目,并希望将其提供给其他人。

  • 1.1.0 - 修改以添加random_bytes钩子函数。
  • 1.0.0 - 修改为使用hash_equals以抵抗时间攻击。这需要php >= 5.6.0
  • 0.3.x - 非常接近原始版本。需要php >= 5.3.3

自定义随机源

在版本1.1.0中,get_random_bytes函数检查是否存在random_bytes函数。如果存在可调用的random_bytes函数,则将使用random_bytes作为随机字节输出的源。否则,将使用原始的get_random_bytes代码。

安装

将此要求添加到您的composer.json文件中,并运行composer.phar install

{
    "require": {
        "ekinhbayar/hautelook-phpass": "1.1.0"
    }
}

用法

以下示例展示了如何哈希密码(然后将哈希存储在数据库中),以及如何检查提供的密码是否正确(哈希值相同)

<?php

namespace Your\Namespace;

use Hautelook\Phpass\PasswordHash;

require_once(__DIR__ . "/vendor/autoload.php");

$passwordHasher = new PasswordHash(8,false);

$password = $passwordHasher->HashPassword('secret');
var_dump($password);

$passwordMatch = $passwordHasher->CheckPassword('secret', "$2a$08$0RK6Yw6j9kSIXrrEOc3dwuDPQuT78HgR0S3/ghOFDEpOGpOkARoSu");
var_dump($passwordMatch);