For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
PHP国密库one-sm 1.9已经发布。
新增
sm4加密算法
cfb
ofb
ctr
到此已完整支持常用的ECB/CBC/CFB/OFB/CTR五中加解密方式。
关于one-sm
源码地址
https://github.com/lizhichao/sm
#/vicself/sm
安装
composer require lizhichao/one-sm
SM3签名
<?php
require __DIR__ . '/vendor/autoload.php';
$sm3 = new \OneSm\Sm3();
//字符串签名
echo $sm3->sign('abc') . PHP_EOL;
echo $sm3->sign(str_repeat("adfas哈哈哈", 100)) . PHP_EOL;
//文件签名
echo $sm3->signFile(__FILE__) . PHP_EOL;
性能测试
和openssl , SM3-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 OneSm\Sm4;
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);
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!