whitehat101 / apr1-md5
纯PHP实现的Apache的APR1-MD5算法
v1.0.0
2015-02-11 11:06 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-09-14 16:34:41 UTC
README
从php.net网站上的一条7年前的评论中获取Apache的apr1-md5密码散列的最好方法是不可能存在的。只有新手才会信任来自非安全网站论坛的加密算法。遗憾的是,这就是PHP社区一直使用这个算法的方式,直到现在。
这是一个经过测试、引用、文档化和打包的Apache APR1 MD5散列算法的纯PHP实现。
安装
composer.json
{ "require": { "whitehat101/apr1-md5": "~1.0" } }
使用
use WhiteHat101\Crypt\APR1_MD5; // Check plaintext password against an APR1-MD5 hash echo APR1_MD5::check('plaintext', '$apr1$PVWlTz/5$SNkIVyogockgH65nMLn.W1'); // Hash a password with a known salt echo APR1_MD5::hash('PASSWORD', '__SALT__'); // Hash a password with a secure random salt echo APR1_MD5::hash('PASSWORD'); // Generate a secure random salt echo APR1_MD5::salt();
理想的__SALT__
是一个8字符的字符串。有效的盐值是字母数字和.
或/
。允许使用较短的盐值。较长的盐值将在第8个字符后截断。
通过其他工具生成散列
htpasswd
$ htpasswd -nmb apache apache apache:$apr1$rOioh4Wh$bVD3DRwksETubcpEH90ww0 $ htpasswd -nmb ChangeMe1 ChangeMe1 ChangeMe1:$apr1$PVWlTz/5$SNkIVyogockgH65nMLn.W1 $ htpasswd -nmb WhiteHat101 WhiteHat101 WhiteHat101:$apr1$HIcWIbgX$G9YqNkCVGlFAN63bClpoT/
openssl
$ openssl passwd -apr1 -salt rOioh4Wh apache $apr1$rOioh4Wh$bVD3DRwksETubcpEH90ww0 $ openssl passwd -apr1 -salt PVWlTz/5 ChangeMe1 $apr1$PVWlTz/5$SNkIVyogockgH65nMLn.W1 $ openssl passwd -apr1 -salt HIcWIbgX WhiteHat101 $apr1$HIcWIbgX$G9YqNkCVGlFAN63bClpoT/
测试
composer install vendor/bin/phpunit