我正在为我的网站创建一个PHP脚本,该脚本将被客户请求。服务器必须使用适当的消息和使用RSA的签名进行响应。为了生成签名,它必须预先形成两个(或一个组合) pow和mod。方程是s = m^d (mod n)。在大多数情况下,s、m和d都是非常大的整数,例如
4469734404104096837429764580934845061283523736702527402872742051805240505404664615264967782650887385837644037614299958863676630939441707937567787879563772416127260032333805678693381552565842160204683672959392802705913819156703613379573565738349149235585010164952052778408063647208096771173475093154490917974997899948301207462141742218985531732928507187811450511092706499289326888705457236944966320563788206136403616537412670548400617858178511373887544380273500238451544917864640793244156569047773433074906247791466420876530066966827069605060742050929459254119941389687342853034996153871651890210106384724986072757985我已经尝试过许多PHP库,比如BCMath、phpseclib和GMP,但是没有人能够通过不给出答案、错误的答案或者用错误的答案来回应数字的大小。
有谁知道一个库可以预置大型pow/mod (powmod)操作吗?
发布于 2018-05-28 16:45:06
我发现解决方案是BigInteger,当我第一次尝试使用库时,我是: A:使用错误的函数,B:我查看了错误的数据池,以便与使用正确的函数时进行比较。
发布于 2018-05-28 14:56:30
phpseclib是一个
完全符合PKCS#1 (v2.1)兼容的RSA、DES、3 DES、RC4、Rijndael、AES、Blowfish、Twofish、SSH-1、SSH-2、SFTP和X.509的纯PHP实现
它有自己的BigInteger实现来存储这样大的文件。使用这个库还会使您自己的RSA liv的实现过时。
https://github.com/phpseclib/phpseclib/blob/master/phpseclib/Math/BigInteger.php
https://stackoverflow.com/questions/50568966
复制相似问题