Сейчас я изучаю криптографию и меня интересует JCE, но я запутался в классе KeyGenerator.Я знаю, что этот класс может генерировать ключ для симметричного алгоритма, но я не понимаю , почему я должен использовать этот класс? , поскольку я могу самостоятельно создать секретный ключ с помощью SecretKeyFactory и использовать его для инициализации объекта шифрования, верно?
как этот код ниже
// 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 () ??