You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码未改动但RSA运算输出不同结果的问题排查求助

RSA部分解密结果错误的核心原因
  • 参数p不符合RSA要求:你选择的p=111不是素数,111可被分解为3×37。RSA的底层逻辑要求p、q必须为互不相同的素数,你之前使用的p=61、q=53均为素数,所以运行结果正常。
  • 欧拉函数φ(n)计算错误:φ(n)=(p-1)(q-1)的计算公式仅在n为两个不同素数的乘积时成立,你使用非素数p计算得到的φ(n)=12320是错误值,实际正确的φ(111×113)=φ(3)×φ(37)×φ(113)=2×36×112=8064。
  • 密钥对不合法:你验证的e×d mod 12320=1是基于错误的φ(n)计算的,实际e和d不满足RSA要求的e×d mod φ(n)=1的互逆条件,因此无法保证所有明文都能正确解密还原。
  • 部分明文解密正确属于巧合:小部分ASCII值刚好满足模n所有素因子的同余条件,看起来结果正确,不代表参数逻辑无误。
  • 补充:你加密的单个ASCII数值在0~127区间,远小于模数12543,不存在明文块超过模数的问题。
修复方案

将p更换为合法素数,例如可选p=109、p=127等素数,重新计算φ(n)、合法的e和d密钥对即可正常运行。


内容的提问来源于stack exchange,提问作者Hürol Keskinkılıç

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:36:03