KeyPairGeneration 在 java 中不适用于 RSA
KeyPairGeneration not working in java for RSA
我正在尝试使用 java.security 在 java 中获取用于 RSA 加密的私钥和 public 密钥。无论我在哪里 google 我总是收到同样的错误提示 NoSuchAlgorithException.
class secret {
void secret(){
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubkey = kp.getPublic();
PrivateKey privkey = kp.getPrivate();
System.out.println(privkey.getEncoded()+"---"+pubkey.getEncoded());
}
}
这是我的秘密 class,它实现了 RSA 的密钥派生。这是我的主要
class project {
public static void main(String[] args) {
System.out.println("Hello!");
secret sec = new secret();
}
}
这是错误
javac project.java
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
project.java:11: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
^
1 error
方法 KeyPairGenerator#getInstance 定义为
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
NoSuchAlgorithmException 是 checked exception。你必须处理它:
static void secret(){
KeyPairGenerator kpg = null;
try {
kpg = KeyPairGenerator.getInstance("RSA");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
kpg.initialize(2048);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubkey = kp.getPublic();
PrivateKey privkey = kp.getPrivate();
System.out.println(privkey.getEncoded()+"---"+pubkey.getEncoded());
}
我正在尝试使用 java.security 在 java 中获取用于 RSA 加密的私钥和 public 密钥。无论我在哪里 google 我总是收到同样的错误提示 NoSuchAlgorithException.
class secret {
void secret(){
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubkey = kp.getPublic();
PrivateKey privkey = kp.getPrivate();
System.out.println(privkey.getEncoded()+"---"+pubkey.getEncoded());
}
}
这是我的秘密 class,它实现了 RSA 的密钥派生。这是我的主要
class project {
public static void main(String[] args) {
System.out.println("Hello!");
secret sec = new secret();
}
}
这是错误
javac project.java
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
project.java:11: error: unreported exception NoSuchAlgorithmException; must be caught or declared to be thrown
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
^
1 error
方法 KeyPairGenerator#getInstance 定义为
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
NoSuchAlgorithmException 是 checked exception。你必须处理它:
static void secret(){
KeyPairGenerator kpg = null;
try {
kpg = KeyPairGenerator.getInstance("RSA");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
kpg.initialize(2048);
KeyPair kp = kpg.generateKeyPair();
PublicKey pubkey = kp.getPublic();
PrivateKey privkey = kp.getPrivate();
System.out.println(privkey.getEncoded()+"---"+pubkey.getEncoded());
}