最近,在PHP项目中使用到了hmac_sha256加密方式。于是,研究了下sha256和hmac_sha256的加密方式,将使用方法记录下来,为其他同学提供参考。

$params = array( 'title' => '测试标题', 'content' => '测试内容', 'original' => 1, 'subTitle' => '测试副标题', 'reward' => 1, 'originalUrl' => '', 'date' => 1591264724237, 'redirect' => true, 'coverUrls' => array('aaa','bbb'), 'tag' => array('djdksld','sdfjllsdkfjsa'), $content1 = json_encode($params, JSON_UNESCAPED_UNICODE); echo "sha256 result= " . strtoupper(hash("sha256", $content1)); echo "\n"; $hash = hash_hmac('sha256', $content1, 'mykey'); echo "hash hmac sha256 result= " . $hash;

计算结果如下所示:

sha256 result= 5BDC1244FA29B6EBE31E0756F6BD169F1DE5F8BCA2F0BD016A3043EF3FDBF76B
hash hmac sha256 result= 89aa21e2237ed2e0c2d672f8bbcc4b920b582167a4ed571c32e34bee7241d83e
最近,在PHP项目中使用到了hmac_sha256加密方式。于是,研究了下sha256和hmac_sha256的加密方式,将使用方法记录下来,为其他同学提供参考。<?php$params = array( 'title' => '测试标题', 'content' => '测试内容', 'original' => 1, 'subTitle' => '测试副标题', 使用 hmac - sha256 加密,然后对其返回的原始二进制数据进行base64编码。 上述示例的计算结果为: yLgHjb8GckRpZ2uW8kb0qipODRkaFCIBNQsnZ2vhGMo= Java 代码示例: String secre...
在开发微信支付的时候有时候会用到签名的同步是否和微信方一致,来验证有效性,微信目前签名方式大致有两种,如下: MD5版本实现思路 使用ksort()函数对参数数组按照数组键名进行升序排序 使用array_filter()函数过滤掉不符合签名条件的数组值 使用http_build_query()函数将数组键名与键值组合成URL字符串 对字符串进行MD5编码 最后使用strtoupper()函数将字符串转换为大写即可 * Create the wechat pay sign with MD
你想要了解 PHP 中的 HMAC - SHA256 是吗? HMAC - SHA256 是一种密码散列函数,它使用 SHA-256 哈希算法和一个密钥来计算消息的哈希值。在 PHP 中,可以使用 hash_ hmac 函数来计算 HMAC - SHA256 哈希值。下面是一个例子: ``` php $message = "Hello, world!"; $key = "secret_key"; $hash = hash_ hmac (' sha256 ', $message, $key); echo $hash; 在这个例子中,我们使用 hash_ hmac 函数计算了 "Hello, world!" 消息的 HMAC - SHA256 哈希值,密钥为 "secret_key"。