SM3-PHP 国密标准 SM3 的原生 PHP 实现开源项目

我要开发同款
匿名用户2020年08月18日
60阅读
开发技术PHP
所属分类程序开发、加密/解密软件包
授权协议MPL

作品详情

SM3-PHP是国密标准SM3的原生PHP实现。

特点纯原生 PHP 代码,不额外依赖扩展项;OOP + Composer ,更优雅,安装更简单;使用命名空间,防止变量名、方法名污染;引入了 Composer 的 PSR-4 规范,进行类的自动加载;使用 PSR-12 代码规范代码注释完整,可配合《 SM3密码杂凑算法 》食用,方便进一步学习和研究本算法。要求5.3<= php <7.2

7.2之后版本理论通过,但因为phpunit的版本兼容性问题,没有单元测试支撑

1.x版本之后只会作为低版本兼容,2.x及之后版本会对PHP更高版本做适配,使用更多新特性

安装本库优先支持Composer安装,但为了尊重使用习惯,也提供了直接下载压缩包的方式。但不得不说,Composer式的以组件、包为单位的项目管理方式更加现代化、方便和优雅。

一、源码解压(不推荐)

下载压缩包

提供了 .zip 和 .tar.gz 两种格式的压缩包,压缩包已经过Composer包的优化

下载地址:https://github.com/DongyunLee/SM3-PHP/releases/latest

解压到项目中的任意位置

Windows:

使用 winrar/7zip/Bandizip 等工具解压

类Unix:

tarzxvfSM3-PHP.tar.gz#或者unzipSM3-PHP.zip#打包命令composerarch#或composerrun-scriptarch二、composer 安装(强烈推荐)

安装 composer

详见《如何安装Composer》

安装慢可更换中文镜像

由于大量先前的镜像失效,所以目前(2019-11-25)推荐使用阿里云镜像

其实配置中已经把镜像配置成了阿里云的镜像。但有效范围毕竟只有这一个包。

开发环境中还是建议进行下全局的配置。

更换阿里云镜像方式详见拙笔《向先行者致敬,迎接Composer的未来!》

composerrequirech4o5/sm3-php

composerinstall

composerupdate

下述 composerupdate 参数作为生产环境的优化,分析、调试和阅读代码无须使用

参数简单说明:

--prefer-dist:优先构建好的包,而不是源码--no-dev:不安装require-dev中定义的包,减小包的大小--no-plugins:不安装插件--with-dependencies:递归更新依赖的包--optimize-autoloader / -o:转换PSR-0/4autoload到classmap可以获得更快的加载支持--classmap-authoritative: 推荐 使用后默认开启 -o,并对所有类加速快速开始在根目录中的 demo.php 中,进行了简单地调用示范:

<?php/***demo@sm3-php**CodeBYch4o5*10月.12th2019*PoweredbyPhpStorm*///1.引入项目中Composer的autoload.phprequire'vendor/autoload.php';//2.如果使用源码压缩包方式安装,则引入下面这句//require'解压后的SM3-PHP目录/vendor/autoload.php';//直接调用提供的sm3()函数$sm3=sm3('abc');//使用它echo$sm3;你也可以在 examples/ 目录下找到更多的使用示例。

目录结构

examples/ 示例项目

src/ 源码目录,命名空间为SM3

vendor/ Composer自动加载相关

CHANGELOG.md 版本变更日志

composer.json Composer 配置文件

composer.lock Composer 锁文件,用于保证版本

demo.php 演示代码

LICENSE 开源许可证文件

README.md 本文件,项目说明

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论