edwinmugendi/hashdigest

此包的最新版本(1)没有可用的许可证信息。

哈希生成器和验证器

1 2014-02-12 05:06 UTC

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);
  1. 如果参数是数组,则按键对数组进行排序,因此上面的数组将排序为
<?php

$dataToHash = array(
    'age'=>'12',
    'at'=>'Sapama.com'
    'city'=>'Nairobi',
    'name'=>'Ali',
    'work'=>'Software Engineer'
);
  1. 通过连接数组元素来生成要哈希的字符串(默认为'.')或您在digest函数的第四个参数中指定的分隔符。因此,从上面的数组生成的字符串将是
$stringToHash = '12.Sapama.com.Nairobi.Ali.Software Engineer'
  1. 使用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提供者和消费者所知的代码或随机字符串,并将其包含在要哈希的数据中,以使哈希更难重新生成。

编程愉快!