今私は暗号について勉強していますが、私はJCEに興味がありますが、私はKeyGeneratorクラスについて混乱しています。私はこのクラスが対称アルゴリズムの鍵を生成できることを知っていますが、私は理解できませんなぜこのクラスを使うべきですか?私はSecretKeyFactoryを使って秘密鍵を自分で作成し、これを使って暗号オブジェクトを初期化することができます。私はJCEのKeyGeneratorとエンコードされたキーについて混同しています
// Create Key
DESKeySpec desKeySpec = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
// Create Cipher
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, secretKey);
以下のコードのような
してから、このコードと比較
KeyGenerator generator = KeyGenerator.getInstance("AES", "BC");
generator.init(192);
Key encryptionKey = generator.generateKey();
それらの間の違いは何ですか?彼らは同じことをしていますか?
また、「getEncoded()」メソッドをどのような状況で使用する必要がありますか?