{"id":25176001,"url":"https://github.com/lizhichao/sm","last_synced_at":"2025-04-04T13:08:34.349Z","repository":{"id":40619945,"uuid":"333374068","full_name":"lizhichao/sm","owner":"lizhichao","description":"php国密SM3，sm4算法","archived":false,"fork":false,"pushed_at":"2023-12-28T01:04:25.000Z","size":33,"stargazers_count":160,"open_issues_count":3,"forks_count":31,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-17T03:43:49.171Z","etag":null,"topics":["php","sm3","sm4"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lizhichao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.vicsdf.com/img/z.jpg","https://www.vicsdf.com/img/w.jpg"]}},"created_at":"2021-01-27T09:51:35.000Z","updated_at":"2024-06-18T12:41:07.543Z","dependencies_parsed_at":"2024-06-18T12:41:06.261Z","dependency_job_id":"2e65bb6c-a3e8-425e-a349-4753b3f2ac2f","html_url":"https://github.com/lizhichao/sm","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":0.03703703703703709,"last_synced_commit":"687a012a44a5bfd4d9143a0234e1060543be455a"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhichao%2Fsm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhichao%2Fsm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhichao%2Fsm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhichao%2Fsm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lizhichao","download_url":"https://codeload.github.com/lizhichao/sm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247175940,"owners_count":20896376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","sm3","sm4"],"created_at":"2025-02-09T13:15:38.761Z","updated_at":"2025-04-04T13:08:34.330Z","avatar_url":"https://github.com/lizhichao.png","language":"PHP","funding_links":["https://www.vicsdf.com/img/z.jpg","https://www.vicsdf.com/img/w.jpg"],"categories":[],"sub_categories":[],"readme":"## 性能最好的php国密算法\n\n- sm3\n    - 字符串签名\n    - 文件签名\n- sm4\n    - ecb\n    - cbc\n    - cfb\n    - ofb\n    - ctr\n\n## 安装\n\n```shell \ncomposer require lizhichao/one-sm\n``` \n\n## SM3签名\n```php\n\u003c?php\nrequire __DIR__ . '/vendor/autoload.php';\n\n$sm3 = new \\OneSm\\Sm3();\n\n// 字符串签名\necho $sm3-\u003esign('abc') . PHP_EOL;\necho $sm3-\u003esign(str_repeat(\"adfas哈哈哈\", 100)) . PHP_EOL;\n\n\n// 文件签名\necho $sm3-\u003esignFile(__FILE__) . PHP_EOL;\n```\n### 性能测试\n和 [openssl](https://github.com/openssl/openssl) , [SM3-PHP](https://github.com/DongyunLee/SM3-PHP) 性能测试\n\n```shell\nphp bench.php\n```\n结果\n```\nopenssl:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067\none-sm3:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067\nSM3-PHP:4901d7181a1024b8c0f59b8d3c5c6d96b4b707ad10e8ebc8ece5dc49364a3067\nopenssl time:6.3741207122803ms\none-sm3 time:8.1770420074463ms\nSM3-PHP time:1738.5928630829ms\n\n```\n[测试代码bench.php](https://github.com/lizhichao/sm/blob/master/bench.php)\n\n\n## SM4加密\n\n```php\n\u003c?php\nuse OneSm\\Sm4;\nrequire __DIR__ . '/vendor/autoload.php';\n\n$data = str_repeat('阿斯顿发到付eeee', 160);\n$str_len = strlen($data);\n\n// md5 签名\n$sign = md5($data);\n\n// 加密key必须为16位\n$key = hex2bin(md5(1));\n$sm4 = new Sm4($key);\n\n// ECB加密\n$d = $sm4-\u003eenDataEcb($data);\n// 加密后的长度和原数据长度一致\nvar_dump(strlen($d) === $str_len);\n\n// ECB解密\n$d = $sm4-\u003edeDataEcb($d);\n// 解密后和原数据相等\nvar_dump(md5($d) === $sign);\n\n\n// 初始化向量16位\n$iv = hex2bin(md5(2));\n// CBC加密\n$d = $sm4-\u003eenDataCbc($data, $iv);\n// 加密后的长度和原数据长度一致\nvar_dump(strlen($d)===$str_len);\n\n// CBC解密\n$d = $sm4-\u003edeDataCbc($d, $iv);\n// 解密后和原数据相等\nvar_dump(md5($d)===$sign);\n\n```\n\n## 我的其他仓库\n\n* [一个极简高性能php框架，支持[swoole | php-fpm ]环境](https://github.com/lizhichao/one)\n* [clickhouse tcp 客户端](https://github.com/lizhichao/one-ck)\n* [中文分词](https://github.com/lizhichao/VicWord)\n* [nsq客户端](https://github.com/lizhichao/one-nsq)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flizhichao%2Fsm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flizhichao%2Fsm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flizhichao%2Fsm/lists"}