📄 generatekeypair.java
字号:
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
/**
* @description generate asymmetrical key pair with algorithms, like RSA or DSA
* @author Boris
* @date 2009/04/08
*
*/
public class GenerateKeyPair {
private RSAPrivateKey priKey;
private RSAPublicKey pubKey;
public GenerateKeyPair(int keysize){
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator generator;
try {
generator = KeyPairGenerator.getInstance("RSA");
generator.initialize(keysize);
KeyPair keyPair = generator.generateKeyPair();
priKey = (RSAPrivateKey)keyPair.getPrivate();
pubKey = (RSAPublicKey)keyPair.getPublic();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
/**
* @param keysize 512, 1024, 2048, 4096
* @param algorithm RSA or DSA
*/
public GenerateKeyPair(int keysize, String algorithm){
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator generator;
try {
generator = KeyPairGenerator.getInstance(algorithm);
generator.initialize(keysize);
KeyPair keyPair = generator.generateKeyPair();
priKey = (RSAPrivateKey)keyPair.getPrivate();
pubKey = (RSAPublicKey)keyPair.getPublic();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public PublicKey getPublicKey(){
return pubKey;
}
public PrivateKey getPrivateKey(){
return priKey;
}
public RSAPublicKey getRSAPubKey(){
return (RSAPublicKey)pubKey;
}
public RSAPrivateKey getRSAPriKey(){
return (RSAPrivateKey)priKey;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -