GithubHelp home page GithubHelp logo

dongyunlee / sm3-php Goto Github PK

View Code? Open in Web Editor NEW
107.0 6.0 19.0 272 KB

国密标准SM3的PHP实现

Home Page: http://sm3.doylee.cn

License: Mozilla Public License 2.0

PHP 100.00%
php sm3 php5 php7 composer-library

sm3-php's Issues

为啥我这边输出结果不一致

// 输出 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

我这边是 2daef60e7a0b8f5e024c81cd2ab3109f2b4f155cf83adeb2ae5532f74a157fdf
本地 远程都是 echo sm3_file('https://raw.githubusercontent.com/DongyunLee/SM3-PHP/master/examples/sm3_file/test.txt');

测试服务器信息 **************

重构为使用PHP直接操作二进制的方式

请描述下你需要的功能相关的问题
现在的计算方式太慢了,需要把把二进制转化成可读的十进制数字(1、0)然后再算

请描述下你预期的解决方案
PHP直接操作二进制

额外信息
整个项目全部重构,精简代码

sm3() donnot support Non-ASCII (不支持非ASC码)

bug描述
例如:sm3(hexToStr("31313131323232329988"));
这样计算出来的结果是:49f5ee514b753fe9c8a0a8385301ff91e53847800e613520bfcbec787845e373
而标准结果是:f639edc383b5031b24e3c2f0c3414970ae3d0537716627c8d1c486676da0b8c0

太遗憾了

sm3_file

请描述下你需要的功能相关的问题
生成文件的 sm3 标识

请描述下你预期的解决方案

  • 直接生成本地和远程文件的 sm3 标识
    • 单元测试
  • 文件流形式生成文件 sm3 标识
    • 单元测试
  • 抛出异常
    • 单元测试

请描述下你考虑过的替代方案
替代?不存在的,莽就完了

composer安装失败

require 'vendor/autoload.php';

use SM3\SM3;

$sm3 = new SM3('abc');
echo $sm3;
这边报错引用不到require 'vendor/autoload.php';
请问一下,这个是引用Composer 的吗

经测试V1.1.2, V1.1.1结果有误, demo结果也不同

环境:
debian 7.8
PHP 5.4.45-0+deb7u11 (cli) (built: Aug 30 2017 01:07:33)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

下载release V1.1.2, V1.1.1 访问demo.php
计算结果均为: 183920f00e15a0433ee3a8fc90dd9ac164c4142ccf63ca189a8f645ec96ff8de
正确结果为: 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

下载部署V1.1 , 复制V1.1.2的demo.php 访问可以得到预期结果. 是否高版本引入了问题?

不能正确处理空白符(空格、回车符等)

问题描述
当输入包含whitespace时,得到的结果和openssl(1.1.1d 10 Sep 2019)不同

复现
执行如下代码:

<?php
/**
 * demo @ sm3-php
 *
 * Code BY ch4o5
 * 10月. 12th 2019
 * Powered by PhpStorm
 */

require 'vendor/autoload.php';

$sm3 = sm3("a a");
echo $sm3;

结果:
1076807302544460b26944d7756a067bd4e135e2076889e86d62db5b5a10c867

对比openssl
执行:
 openssl dgst -sm3 test.txt
结果:
SM3(test.txt)= d6ef141c5faa9bbde67cbc9f45988d6158eaf0bc2ab492bb489a6524ca492cbc

对比在线工具
另一个在线工具的例子(http://aks.jd.com/tools/sec/):
深度截图_选择区域_20191216172917

环境 :

  • OS: Manjaro 18.1.4 Juhraya
  • Kernel: x86_64 Linux 4.19.88-1-MANJARO
  • PHP 7.4.0 (cli) (built: Nov 30 2019 10:43:49) ( NTS )
  • ch4o5/sm3-php: 1.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.