Tech and Media Labs
This site uses cookies to improve the user experience.

Java KeyGenerator

Jakob Jenkov
Last update: 2018-01-23

The Java KeyGenerator class (javax.crypto.KeyGenerator) is used to generate symmetric encryption keys. A symmetric encryption key is a key that is used for both encryption and decryption of data, by a symmetric encryption algorithm. In this Java KeyGenerator tutorial I will show you how to generate symmetric encryption keys.

Creating a KeyGenerator Instance

Before you can use the Java KeyGenerator class you must create a KeyGenerator instance. You create a KeyGenerator instance by calling the static method getInstance() passing as parameter the name of the encryption algorithm to create a key for. Here is an example of creating a Java KeyGenerator instance:

KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

This example creates a KeyGenerator instance which can generate keys for the AES encryption algorithm.

Initializing the KeyGenerator

After creating the KeyGenerator instance you must initialize it. Initializing a KeyGenerator instance is done by calling its init() method. Here is an example of initializing a KeyGenerator instance:

SecureRandom secureRandom = new SecureRandom();
int keyBitSize = 256;

keyGenerator.init(keyBitSize, secureRandom);

The KeyGenerator init() method takes two parameters: The bit size of the keys to generate, and a SecureRandom that is used during key generation.

Generating a Key

Once the Java KeyGenerator instance is initialized you can use it to generate keys. Generating a key is done by calling the KeyGenerator generateKey() method. Here is an example of generating a symmetric key:

SecretKey secretKey = keyGenerator.generateKey();

Jakob Jenkov

Copyright  Jenkov Aps
Close TOC