Java安全性RSA - InvalidKeyException

时间:2018-06-02 12:25:50

标签: java encryption runtime-error rsa

我目前正致力于使用RSA进行非对称加密的工具:

PublicKey FrKey;

public byte[] encrypt(String msg) {

    byte[] msg1 = null;

    Cipher cp = Cipher.getInstance("RSA");
    cp.init(Cipher.ENCRYPT_MODE, FrKey);
    msg1 = cp.doFinal(msg.getBytes());

    return msg1;
}

public void setOpKey(String s) {

        X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(s.getBytes()));
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        PublicKey publicKey = keyFactory.generatePublic(pubKeySpec);
        System.out.println("Friends Public: "+s+"\n\n"+publicKey);
}

虽然设置对手公钥的setOpKey函数似乎工作得很好,但是当加密类运行时,java会返回错误:

  

java.security.InvalidKeyException:没有安装的提供程序支持此密钥:(null)

从这个错误你会读到,Key将为null,但是如下面的控制台输出所示,它不是。

  

Friends Public:我输入的 / String,由RSA生成 /

     

Sun RSA公钥,1024位

     

模数: /非常长的数字 /

     

公众指数:65537

这似乎是公钥的错误,但我不知道如何解决这个问题。任何帮助将不胜感激。

PS:我删除了所有try / catch子句,使代码更具可读性。

0 个答案:

没有答案