ozh/phpass

该软件包已被弃用,不再维护。未建议替代软件包。

便携式PHP密码散列框架

1.4.0 2022-02-23 15:31 UTC

This package is auto-updated.

Last update: 2022-05-23 16:10:29 UTC


README

Build Status

这是Openwall的Phpass,基于0.5版本,但略有现代化

  • 命名空间
  • Composer支持(自动加载)
  • 单元测试

现代化是由Hautelook完成的,我从他们那里偷了这个库,最初是为了将PHP 5.3到7.0的兼容性打包到一个文件和分支中(Hautelook的分支由两个分支组成,一个用于PHP 5.3到5.5,另一个用于5.6+)。

当前版本需要PHP 5.6+

安装

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

{
    "require": {
        "ozh/phpass": "1.3.0"
    }
}

用法

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

<?php

namespace Your\Namespace;

use Ozh\Phpass\PasswordHash;

require_once(__DIR__ . "/vendor/autoload.php"); // or require_once('path/to/src/Ozh/Phpass/PasswordHash.php');

$passwordHasher = new PasswordHash(8,false);

// Encrypt
$password = $passwordHasher->HashPassword('secret');
var_dump($password);
    // Will output something like:
    // '$2a$08$a6XFLs8SrjClF1szoDDkI.6gtWVb4//QnzUjkxlus83AKCNjuD8Ha' (length=60)
    // '$2a$08$Qze1smZ//VAwHJ1t52zklOY/yLwlbKR6Ighf6B7uqGXdYVozTPEdG' (length=60)
    // '$2a$08$u2uKfE9igO.Cz0SptWxlXeVi0CQglfl3FdRK3YpbGm1NfF1d.CFPm' (length=60)

// Decrypt
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$0RK6Yw6j9kSIXrrEOc3dwuDPQuT78HgR0S3/ghOFDEpOGpOkARoSu') );
    // true
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$Qze1smZ//VAwHJ1t52zklOY/yLwlbKR6Ighf6B7uqGXdYVozTPEdG') );
    // true
var_dump( $passwordHasher->CheckPassword('secret', '$2a$08$u2uKfE9igO.Cz0SptWxlXeVi0CQglfl3FdRK3YpbGm1NfF1d.CFPm') );
    // true