Files
2006Scape/2006Scape Server/src/main/java/com/rs2/net/rsa/RSAKeyGen.java
T
2021-03-11 00:30:16 +00:00

58 lines
1.8 KiB
Java

package com.rs2.net.rsa;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;
/**
* A class to generate a simple 1024 bit RSA pair
* @author Nikki
*/
public class RSAKeyGen {
public static void main(String[] args) {
try {
KeyFactory factory = KeyFactory.getInstance("RSA");
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair keypair = keyGen.genKeyPair();
PrivateKey privateKey = keypair.getPrivate();
PublicKey publicKey = keypair.getPublic();
RSAPrivateKeySpec privSpec = factory.getKeySpec(privateKey, RSAPrivateKeySpec.class);
writeKey("rsapriv", privSpec.getModulus(), privSpec.getPrivateExponent());
RSAPublicKeySpec pubSpec = factory.getKeySpec(publicKey, RSAPublicKeySpec.class);
writeKey("rsapub", pubSpec.getModulus(), pubSpec.getPublicExponent());
} catch(Exception e) {
e.printStackTrace();
}
}
public static void writeKey(String file, BigInteger modulus, BigInteger exponent) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write("private static final BigInteger RSA_MODULUS = new BigInteger(\""+modulus.toString()+"\");");
writer.newLine();
writer.newLine();
writer.write("private static final BigInteger RSA_EXPONENT = new BigInteger(\""+exponent.toString()+"\");");
writer.newLine();
writer.flush();
writer.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}