Sample code for 30+ languages & platforms
Java Requires Chilkat v11.0.0+

Generate an RSA Key and Get as Base64 DER

See more RSA Examples

Demonstrates how to generate a 2048-bit RSA key and return the public and private parts as unencrypted Base64 encoded DER.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.PrivateKey;
import com.chilkatsoft.chilkat2.PublicKey;
import com.chilkatsoft.chilkat2.Rsa;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Rsa rsa = new Rsa();

        // Generate a 2048-bit key.
        PrivateKey privKey = new PrivateKey();
        try {
            rsa.genKey(2048, privKey);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Get the public part of the key.
        PublicKey pubKey = new PublicKey();
        privKey.toPublicKey(pubKey);

        // There are two possible formats for representing the RSA public key
        // in ASN.1 (DER).  The possible formats are PKCS1 and PKCS8.
        // We can get either by setting bChoosePkcs1 to true or false.
        boolean bChoosePkcs1 = true;
        String pubKeyBase64Der = pubKey.getEncoded(bChoosePkcs1, "base64");
        System.out.println("Public Key Base64 DER:");
        System.out.println(pubKeyBase64Der);

        // Get the private key as Base64 DER:
        // We can get PKCS1 or PKCS8, but with different methods:
        String privKeyPkcs1 = privKey.getPkcs1ENC("base64");
        System.out.println("Private Key PKCS1 Base64 DER:");
        System.out.println(privKeyPkcs1);

        String privKeyPkcs8 = privKey.getPkcs8ENC("base64");
        System.out.println("Private Key PKCS8 Base64 DER:");
        System.out.println(privKeyPkcs8);
    }
}