我正在尝试使用RSA创建一个小的消息系统来加密消息,但是由于某些原因,该代码无法识别KeyPairGenerator类,因此我一开始就陷入了困境。
到目前为止,如Internet上的许多示例所示,我的代码是:

public class RSA {
    private KeyPairGenerator key_par_gen = null;
    private KeyPair kp = null;
    private PublicKey publicKey = null;
    private PrivateKey privateKey = null;
    private KeyFactory factory_rsa = null;
    private RSAPublicKeySpec pub = null;
    private RSAPrivateKeySpec priv = null;

    public RSA(){
        setKey_par_gen();
        setKp(); //No error here
    }

    public void setKey_par_gen() {
        this.key_par_gen = new KeyPairGenerator.getInstance("RSA");
        //Error: Description    Resource    Path    Location    Type
        //       KeyPairGenerator.getInstance cannot be resolved to a type  RSA.java    /RSA - Cloud/src    line 41 Java Problem

    }

    public void setKp() {
        this.kp = getKey_par_gen().genKeyPair();
    }
//....
}


我已经更新到最新的Java版本,打开了KeyPairGenerator声明,并且该声明以及声明的函数和所有函数都在其中。
也不能来自IDE,因为我尝试了Intellij,Eclipse和Netbeans。
不知道我在这里想念的是什么。任何帮助表示赞赏。

最佳答案

您正在尝试实例化不存在的嵌套类KeyPairGenerator.getInstance

this.key_par_gen = new KeyPairGenerator.getInstance("RSA");
// Error: KeyPairGenerator.getInstance cannot be resolved to a type

相反,您需要调用getInstance()的静态KeyPairGenerator方法-只需删除new
this.key_par_gen = KeyPairGenerator.getInstance("RSA");

关于java - KeyPairGenerator无法解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33824266/

10-12 20:54