kofk99999 2014-07-18 10:03 采纳率: 100%
浏览 4409
已采纳

关于java自带RSA密钥包生成的私钥公钥加密不了,求大神帮忙看一下

我用JAVA生成了一个公钥如下:
System.out.println(publicKey.getPublicKey());

输出:modulus:154308594144468705348294760484396264219304223307125368116140288659005422830
11489867478404495635728307309845313276126541903154766024976823588585215138754477992
96802915396931308077347778973425837411602815233405546695183536389616670156153124753
50767041053961957188628650343640790505255765999004862716823611888529

public exponent: 65537

用这个modulus的值加密不了,我看网上的公钥都是这样子的5q4F3crOuN4OG68Dko7EZl5wYn+FokohvMm6m/NFmMJIGBhYnJ9/8JKQMxndka8GafQ9BU/LASFtvbrfNsyA6TfP2wMalewfWF0GBT5AviGouGqt9I9BMrvBfTttU5OMqD2rF+fQ23WMTi+UYzY/9kZB7Rys7A1oIFWnsnB0Jnc=AQAB

请问这个modulus是不是要转换一下 怎么转换呢?有没懂的大神帮下忙

  • 写回答

1条回答

  • liujoi 2014-07-21 02:34
    关注

    模加密是:BigInteger n=pbk.getModulus();
    System.out.println("e= "+e);
    System.out.println("n= "+n);
    // 明文 m
    byte ptext[]=s.getBytes("UTF8");
    BigInteger m=new BigInteger(ptext);
    // 计算密文c,打印
    BigInteger c=m.modPow(e,n);
    System.out.println("c= "+c);

    下面的格式是Base64格式的:
    RSAPublicKey pbk=(RSAPublicKey) x509.getPublicKey();
    System.out.println(Base64.encode(pbk.getEncoded()));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3