Java暗号化-KeyGenerator
Javaは提供します KeyGenerator クラスこのクラスは秘密鍵を生成するために使用され、このクラスのオブジェクトは再利用可能です。
KeyGeneratorクラスを使用してキーを生成するには、以下の手順に従います。
ステップ1:KeyGeneratorオブジェクトを作成する
ザ・ KeyGenerator クラスは提供します getInstance() 必要な鍵生成アルゴリズムを表すString変数を受け入れ、秘密鍵を生成するKeyGeneratorオブジェクトを返すメソッド。
作成する KeyGenerator を使用するオブジェクト getInstance() 以下に示す方法。
//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
手順2:SecureRandomオブジェクトを作成する
ザ・ SecureRandom のクラス java.Securityパッケージは、Javaで乱数を生成するために使用される強力な乱数ジェネレーターを提供します。以下に示すように、このクラスをインスタンス化します。
//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();
ステップ3:KeyGeneratorを初期化する
ザ・ KeyGenerator クラスはという名前のメソッドを提供します init() このメソッドはSecureRandomオブジェクトを受け入れ、現在のオブジェクトを初期化します KeyGenerator。
前の手順で作成したKeyGeneratorオブジェクトを、 init() 方法。
//Initializing the KeyGenerator
keyGen.init(secRandom);
例
次の例は、のKeyGeneratorクラスを使用した秘密鍵の鍵生成を示しています。 javax.crypto パッケージ。
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import java.security.Key;
import java.security.SecureRandom;
public class KeyGeneratorExample {
public static void main(String args[]) throws Exception{
//Creating a KeyGenerator object
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
//Creating a SecureRandom object
SecureRandom secRandom = new SecureRandom();
//Initializing the KeyGenerator
keyGen.init(secRandom);
//Creating/Generating a key
Key key = keyGen.generateKey();
System.out.println(key);
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(cipher.ENCRYPT_MODE, key);
String msg = new String("Hi how are you");
byte[] bytes = cipher.doFinal(msg.getBytes());
System.out.println(bytes);
}
}
出力
上記のプログラムは次の出力を生成します-
com.sun.crypto.provider.DESKey@18629
[B@2ac1fdc4