001package de.saly.kafka.crypto;
002
003import java.io.File;
004import java.io.FileOutputStream;
005import java.security.KeyPair;
006import java.security.KeyPairGenerator;
007import java.util.UUID;
008
009public class RsaKeyGen {
010    
011    public static void main(String[] args) throws Exception {
012        int keysize = (args != null && args.length > 0) ? Integer.parseInt(args[0]) : 2048;
013        System.out.println("Keysize: "+keysize+" bits");
014        String uuid = UUID.randomUUID().toString();
015        File pubKey = new File("rsa_publickey_" + keysize + "_" + uuid);
016        File privKey = new File("rsa_privatekey_" + keysize + "_" + uuid);
017
018        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
019        keyGen.initialize(keysize);
020        KeyPair pair = keyGen.genKeyPair();
021        byte[] publicKey = pair.getPublic().getEncoded();
022        byte[] privateKey = pair.getPrivate().getEncoded();
023
024        FileOutputStream fout = new FileOutputStream(pubKey);
025        fout.write(publicKey);
026        fout.close();
027
028        fout = new FileOutputStream(privKey);
029        fout.write(privateKey);
030        fout.close();
031
032        System.out.println(pubKey.getAbsolutePath());
033        System.out.println(privKey.getAbsolutePath());
034    }
035    
036}