繁体   English   中英

PHP计算大整数计算

[英]PHP Calculate a large integer calculations

我正在为我的网站创建一个PHP脚本,该脚本将由客户端请求。 服务器必须使用RSA来响应适当的消息和签名。 为了生成签名,它必须执行两个(或一个组合)pow和mod。 该方程为s = m^d (mod n) 并且在大多数情况下smd是非常大的整数,例如

4469734404104096837429764580934845061283523736702527402872742051805240505404664615264967782650887385837644037614299958863676630939441707937567787879563772416127260032333805678693381552565842160204683672959392802705913819156703613379573565738349149235585010164952052778408063647208096771173475093154490917974997899948301207462141742218985531732928507187811450511092706499289326888705457236944966320563788206136403616537412670548400617858178511373887544380273500238451544917864640793244156569047773433074906247791466420876530066966827069605060742050929459254119941389687342853034996153871651890210106384724986072757985

我已经尝试了许多PHP库,例如BCMath,phpseclib和GMP,但是没有一个库不能通过不给出答案,错误给出答案或用错误的答案回答来处理数字的大小。

有谁知道可以执行大型pow / mod(powmod)操作的库?

phpseclib是一个

任意精度整数算术库的纯PHP实现,完全兼容PKCS#1(v2.1)RSA,DES,3DES,RC4,Rijndael,AES,Blowfish,Twofish,SSH-1,SSH-2,SFTP和X.509

它具有BigInteger自己的实现来存储如此大的文件。 使用此库还使过时的实现自己的RSA liv成为可能。

https://github.com/phpseclib/phpseclib/blob/master/phpseclib/Math/BigInteger.php

我发现解决方案是https://pear.php.net/package/Math_BigInteger ,当我第一次尝试使用该库时,我是A:使用了错误的函数,B:我在寻找错误的数据点进行比较当我使用正确的功能时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM