小编Moh*_*diq的帖子

java中的大数模数

我正在用 java 编写一个 RSA 解密原型。这只是为了展示它对学校的作用,这就是为什么我尽量保持简单。但是当我进入解密部分时,我必须使用公式:

c = m^e % n。

出于测试目的,我尝试使用m = "1010"(因为我从我的程序中将它作为字符串获取)、e = 55n = 361来做到这一点。这应该给我 345 作为 c(在 Windows 计算器中测试)。我得到的结果是:

Math.pow(Integer.parseInt("1010"), 55) % 361 // 115.0

BigDecimal b = BigDecimal.valueOf(Math.pow(Integer.parseInt("1010"),55));

(b.remainder(BigDecimal.valueOf(361))).doubleValue() // 300.0

Math.pow(Integer.parseInt("1010"), 55) % 361 //  340
Run Code Online (Sandbox Code Playgroud)

请告诉我我错在哪里或如何解决这个问题。提前致谢。

java integer algebra bigdecimal modulus

0
推荐指数
1
解决办法
754
查看次数

标签 统计

algebra ×1

bigdecimal ×1

integer ×1

java ×1

modulus ×1