性能最好的php国密算法

sm3 字符串签名 文件签名 sm4 ecb cbc cfb ofb ctr

安装

composer require lizhichao/one-sm

SM3签名

<?php require __DIR__ . '/vendor/autoload.php'; $sm3 = new OneSmSm3(); // 字符串签名 echo $sm3->sign('abc') . PHP_EOL; echo $sm3->sign(str_repeat("adfas哈哈哈", 100)) . PHP_EOL; // 文件签名 echo $sm3->signFile(__FILE__) . PHP_EOL;

性能测试

和 openssl , SM3-PHP 性能测试

php bench.php

结果

openssl:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067 one-sm3:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067 SM3-PHP:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067 openssl time:6.3741207122803ms one-sm3 time:8.1770420074463ms SM3-PHP time:1738.5928630829ms

测试代码bench.php

SM4加密

<?php use OneSmSm4; require __DIR__ . '/vendor/autoload.php'; $data = str_repeat('阿斯顿发到付eeee', 160); $str_len = strlen($data); // md5 签名 $sign = md5($data); // 加密key必须为16位 $key = hex2bin(md5(1)); $sm4 = new Sm4($key); // ECB加密 $d = $sm4->enDataEcb($data); // 加密后的长度和原数据长度一致 var_dump(strlen($d) === $str_len); // ECB解密 $d = $sm4->deDataEcb($d); // 解密后和原数据相等 var_dump(md5($d) === $sign); // 初始化向量16位 $iv = hex2bin(md5(2)); // CBC加密 $d = $sm4->enDataCbc($data, $iv); // 加密后的长度和原数据长度一致 var_dump(strlen($d)===$str_len); // CBC解密 $d = $sm4->deDataCbc($d, $iv); // 解密后和原数据相等 var_dump(md5($d)===$sign);

我的其他仓库

一个极简高性能php框架,支持[swoole | php-fpm ]环境 clickhouse tcp 客户端 中文分词 nsq客户端

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。