PHP fmod() 与 pow() 一起使用时返回错误值

PHP fmod() returns wrong value when used with pow()

提问人:agronxyz 提问时间:6/7/2022 更新时间:6/7/2022 访问量:46

问:

所以我试图做一个公私钥方程式,它应该是

加密文本 = m^e mod n

其中 m 是需要加密的东西,我尝试了很多不同的东西,但没有一个有效

pow(20,37)%77;

这将返回 0

fmod(pow(20,37), 77);

这将返回 33

20^37%77;

这返回 49,这是我得到的正确答案 48 的最接近值

我似乎无法弄清楚出了什么问题,我假设这可能是一个浮点问题,但是当在 JavaScript 和 C# 中执行相同的方程式时,它效果很好

如果有人能帮助我,或者至少让我走上正轨,将不胜感激:)

PHP 数学 浮点

评论

4赞 r3mainer 6/7/2022
20 的 37 次方是一个巨大的数字。你不会得到合理的结果,或者因为你远远超出了双精度浮点数的能力。请改用。(此外,是 XOR 运算符。pow()fmod()bcpowmod(20,37,77)^
1赞 JoelCrypto 6/7/2022
此外,如果你想加密,我建议使用预先构建的库。密码学并不是那么容易。

答: 暂无答案