Using the KeyGenerator class and showing how to create a SecretKeySpec from an encoded key. AES Key generator: 36.2.3. Tampered message, plain encryption, AES in CTR mode: 36.2.4. Tampered message, encryption with digest, AES in CTR mode: 36.2.5. Tampered message with HMac, encryption with AES in CTR mode: 36.2.6. AES wraps RSA.
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.
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:
This example creates a KeyGenerator
instance which can generate keys for the AES encryption algorithm.
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:
The KeyGenerator
init()
method takes two parameters: The bit size of the keys to generate, and a SecureRandom
that is used during key generation.
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: