edwinmugendi / hashdigest
此包的最新版本(1)没有可用的许可证信息。
哈希生成器和验证器
1
2014-02-12 05:06 UTC
Requires
- php: >=5.1.2
This package is auto-updated.
Last update: 2024-09-24 10:14:46 UTC
README
PHP 哈希生成器和验证器
这是一个PHP函数HASH的包装,用于使用sha256算法生成哈希摘要,并验证给定的哈希是否与给定的数据匹配。
安装
要求
PHP v>=5.1.2+使用Composer
最简单的方法是通过composer安装Carbon。创建以下composer.json
文件,然后运行php composer.phar install命令来安装它。```json "require": { "edwinmugendi/hashdigest": "master" } ```不使用Composer
为什么不使用composer?无论如何,从repo下载Digester.php,并将其保存到项目中的某个位置。
```php use HashDigest\Digester;$dataToHash = array( 'name'=>'Ali', 'age'=>'12', 'city'=>'Nairobi', 'work'=>'Software Engineer', 'at'=>'Sapama.com' );
$hash = Digester::digest($dataToHash);
echo '生成的哈希是 '; echo "\n"; echo $hash; echo "\n"; $isValid = Digester::isHashValid($hash, $dataToHash);
echo "哈希是 ". ($isValid ? '有效的': '无效的');
<h3>Algorithm</h3>
<h4>Hash generation</h4>
The hash is generated by:
1. The ```digest($dataToHash, $algo = 'sha256', $raw_output = false, $separator = '.')``` function takes a string or array as parameter of data to be hashed eg;
```php
<?php
$dataToHash = array(
'name'=>'Ali',
'age'=>'12',
'city'=>'Nairobi',
'work'=>'Software Engineer',
'at'=>'Sapama.com'
);
$hash = Digester::digest($dataToHash);
- 如果参数是数组,则按键对数组进行排序,因此上面的数组将排序为
<?php $dataToHash = array( 'age'=>'12', 'at'=>'Sapama.com' 'city'=>'Nairobi', 'name'=>'Ali', 'work'=>'Software Engineer' );
- 通过连接数组元素来生成要哈希的字符串(默认为'.')或您在
digest
函数的第四个参数中指定的分隔符。因此,从上面的数组生成的字符串将是
$stringToHash = '12.Sapama.com.Nairobi.Ali.Software Engineer'
- 使用sha256算法(对于PHP使用PHP Hash)对生成的字符串进行哈希处理
$hash = '87304e9ab39f1d9c70b9f51f9f3b70fed5d19fbd3917ea3678115c5adffcf0d5';
哈希验证
1. 要执行哈希验证,请使用isHashValid($hash,$dataToHash)
,需要传递预先创建的哈希以及从该数据生成哈希的数据。2. 如果哈希已验证,则该函数返回true
,否则返回false
可能的应用
1. 保护API - 此库可以用来生成要传递给API的数据的哈希摘要和API_SECRET
(见下文)。请记住,还要将生成的哈希包含在POST的数据中,以便API可以使用数据生成哈希并尝试与POST的哈希进行验证。NB: API_SECRET
这是API提供者和消费者所知的代码或随机字符串,并将其包含在要哈希的数据中,以使哈希更难重新生成。
编程愉快!