lamansky / hash
1.0.0
2016-11-10 10:48 UTC
Requires
- php: >=7.0.0
This package is not auto-updated.
Last update: 2024-09-23 13:31:45 UTC
README
作者:John Lamansky
发布日期:2016-11-10
一个简单的库,用于比较哈希并生成令牌。包括 Doctrine 类型,用于高效的数据库存储和检索。需要 PHP 7。
安装
使用 Composer
composer require lamansky/hash
基本用法
<?php use Lamansky\Hash\Hash; //Hash a string echo Hash::generate('md5', 'test')->toHex(); //098f6bcd4621d373cade4e832627b4f6 //Generate random 128-bit and 256-bit tokens $a = Hash::generateRandom(128); $b = Hash::generateRandom(256); //Timing-safe comparison var_dump($a->equals($b)); //bool(false) //Convert Hash to hex string $hex = $a->toHex(); echo $hex; //4df3fa5a70eaa4097740b46017d428e2 //Compare Hash with string var_dump($a->equals($hex)); //bool(true) //Turn string back into a Hash $c = new Hash(128, $hex); var_dump($c->equals($a)); //bool(true)
Doctrine 用法
<?php use Doctrine\DBAL\Types\Type; Type::addType('hash256', 'Lamansky\Hash\Doctrine\Hash256Type'); //256-bit hash Type::addType('hash384', 'Lamansky\Hash\Doctrine\Hash384Type'); //384-bit hash Type::addType('hash512', 'Lamansky\Hash\Doctrine\Hash512Type'); //512-bit hash
<?php use Lamansky\Hash\Hash; /** * @Entity */ class Session { /** * @Column(type="hash256") */ protected $token; public function __construct() { $this->token = Hash::generateRandom(256); } public function tokenEquals($other) : bool { return $this->token->equals($other); } }
变更日志
1.0.0 (2016-11-10)
- 初始版本发布