SM3-PHP icon indicating copy to clipboard operation
SM3-PHP copied to clipboard

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

Open DongyunLee opened this issue 4 years ago • 9 comments

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

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

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

DongyunLee avatar Aug 17 '20 08:08 DongyunLee

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

lizhichao avatar Sep 11 '20 08:09 lizhichao

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

之前纠结于字符串的左移右移和补位,现在已经解决了,是我学艺不精了。

感谢关注!

DongyunLee avatar Sep 18 '20 03:09 DongyunLee

大佬把 sm2 sm3 sm4 都加上吧

lizhichao avatar Sep 18 '20 13:09 lizhichao

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

PHP位级别的左移右移都是针对int的,根上都是对于数值的➗进制运算。字符串没法直接左移右移。 所以PHP没法直接操作位,比如给字符串添加一个1bit的0b1,只能从字符级别,通过ascii进行中转。

DongyunLee avatar Sep 21 '20 04:09 DongyunLee

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

PHP位级别的左移右移都是针对int的,根上都是对于数值的➗进制运算。字符串没法直接左移右移。 所以PHP没法直接操作位,比如给字符串添加一个1bit的0b1,只能从字符级别,通过ascii进行中转。

$str = 'dddd';
$str.= pack('C',1);

嗯 可以加个好友沟通

lizhichao avatar Sep 21 '20 23:09 lizhichao

@DongyunLee https://github.com/lizhichao/sm 看了看算法 重写了一个 支持文件

lizhichao avatar Jan 27 '21 10:01 lizhichao

@DongyunLee https://github.com/lizhichao/sm 看了看算法 重写了一个 支持文件

拜读了大佬的项目,学到了很多,感谢 👍

DongyunLee avatar Mar 24 '21 01:03 DongyunLee

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

PHP位级别的左移右移都是针对int的,根上都是对于数值的➗进制运算。字符串没法直接左移右移。 所以PHP没法直接操作位,比如给字符串添加一个1bit的0b1,只能从字符级别,通过ascii进行中转。

$str = 'dddd';
$str.= pack('C',1);

嗯 可以加个好友沟通

没找到您的联系方式,可以给个邮箱或者给我profile中的邮箱发个邮件吗?

DongyunLee avatar Mar 24 '21 01:03 DongyunLee

我就喜欢造轮子的人。不过php有位运算符,不知道你说的痛点是什么?

var_dump(('aa' | 'bbb') === 'ccb');

PHP位级别的左移右移都是针对int的,根上都是对于数值的➗进制运算。字符串没法直接左移右移。 所以PHP没法直接操作位,比如给字符串添加一个1bit的0b1,只能从字符级别,通过ascii进行中转。

$str = 'dddd';
$str.= pack('C',1);

嗯 可以加个好友沟通

没找到您的联系方式,可以给个邮箱或者给我profile中的邮箱发个邮件吗?

qq群 731475644

lizhichao avatar Mar 24 '21 02:03 lizhichao