PHP 加密搜集:AES、HmacSHA1

整合 PHP技巧
阅读数: 865 2020年07月24日

对接其他语言接口的时候,最头疼的事情就是各式各样的加密方法,不同语言实现方式都不一样。收集下希望给同名人一个帮助:

PHP 7.2
//AES加密模式是ECB,填充是PKCS7,偏移量是0,输出Base64。
$encrypted = openssl_encrypt($json, 'AES-128-ECB', $secret, 0, '');
注意:php 7+ $secret不能超过16位,超过16位也只取16位

可是 openssl 有缺陷:在openssl_encrypt中。key长度只能是16长度,>16长度后,签名结果保持不变。坑死哥了!


//HmacSHA1加密,之后进行Base64加密
//HmacSHA1 加密
$sign = hash_hmac("sha1", $str, $data['PrivateKey'], true); //获得是二进制 = C# byte[]
//\Yii::error($sign,'getSignature->sign');
//Base64 加密
$sign = base64_encode($sign);


参考资料
https://www.cnblogs.com/lantor/p/7351374.html
phpriji.cn | 网站地图 | 沪ICP备17015433号-1