1. 程式人生 > 其它 >PHP 國密庫 one-sm 1.9 釋出

PHP 國密庫 one-sm 1.9 釋出

新春現金紅包與免費Linux基金會培訓&認證,等你來領!>>> watermark,image_bG9nby9jc2RuXzEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLGhfMg==,g_se,x_0,y_0,t_100

PHP 國密庫 one-sm 1.9 已經發布。

新增

  • sm4 加密演算法
    • cfb
    • ofb
    • ctr

到此已完整支援常用的ECB/CBC/CFB/OFB/CTR 五中加解密方式。

關於one-sm

原始碼地址
https://github.com/lizhichao/sm

https://gitee.com/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);