小编adh*_*ara的帖子

BigInteger 用 BigInteger 取幂:ArithmeticException,会溢出支持的范围

我正在构建 DSA 算法。但是我在将 BigInteger 数字与其他 BigInteger 数字进行排名时遇到了问题。这是我想使用的公式:

v = ((g^u1 * y^u2) mod p) mod q

这是我制作的代码:

BigInteger v = g.pow(u1.intValue()).multiply(y.pow(u2.intValue())).mod(p).mod(q);

运行脚本时,错误是:

Exception in thread "main" java.lang.ArithmeticException: BigInteger would overflow supported range
        at java.math.BigInteger.reportOverflow(Unknown Source)
        at java.math.BigInteger.pow(Unknown Source)
        at DSAVerifying.main(DSAVerifying.java:38)
Run Code Online (Sandbox Code Playgroud)

java exponentiation dsa

3
推荐指数
1
解决办法
64
查看次数

标签 统计

dsa ×1

exponentiation ×1

java ×1