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