crypto
Get bytes of generated symmetric key
In this example we shall show you how to get the bytes of a generated symmetric key.
To get the bytes of a generated symmetric key one should perform the following steps:
- Create a new KeyGenerator for the
DESedealgorithm. - Generate a SecretKey, using
generateKey()API method of KeyGenerator. - Use
getEncoded()API method of SecretKey, to get a byte array that is the key in its primary encoding format. - Construct a new SecretKey, using a SecretKeySpec from the given byte array and using the same algorithm. The new key is equal to the initial key.
as described in the code snippet below.
package com.javacodegeeks.snippets.core;
import java.security.NoSuchAlgorithmException;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class GetBytesOfGeneratedSymmetricKey {
public static void main(String[] args) {
try {
String algorithm = "DESede";
// create a key generator
KeyGenerator keyGen = KeyGenerator.getInstance(algorithm);
// generate a key
SecretKey key = keyGen.generateKey();
// get the raw key bytes
byte[] keyBytes = key.getEncoded();
System.out.println("Key Length: " + keyBytes.length);
// construct a secret key from the given byte array
SecretKey keyFromBytes = new SecretKeySpec(keyBytes, algorithm);
System.out.println("Keys Equal: " + key.equals(keyFromBytes));
}
catch (NoSuchAlgorithmException e) {
System.out.println("No Such Algorithm:" + e.getMessage());
return;
}
}
}
Output:
Key Length: 24
Keys Equal: true
This was an example of how to get the bytes of a generated symmetric key in Java.

