Расширение предыдущего ответа
Что именно PBEWithMD5AndDes означает как алгоритм?
PBE использует ключ шифрования, сгенерированный из пароля, случайной соли и количества итераций, см. Параметры KeySpec.
KeySpec pbeSpec = new PBEKeySpec(password.toCharArray(), psswdSalt, PBKDF_INTERATIONS, SYMMETRIC_KEY_LENGTH)
Идея в том, что пароли, как правило, короткие и недостаточно случайные, поэтому их легко угадать. Использование количества итераций должно усложнить процесс угадывания.
PBEWithMD5AndDes
использует MD5 и DES для генерации ключа, см. пример кода . Реальная реализация должна использовать намного большее количество итераций
Как это отличается от использования MD5 или DES? Это то, что я хотел бы знать.
Теоретически - вы можете использовать чистый MD5 или DES, но современный компьютер может очень быстро угадать пароли.
Обратите внимание, что DES и MD5 устарели сегодня. Столкновение MD5 можно обнаружить менее чем за минуту на обычном оборудовании, а DES использует 64-битный ключ, что довольно мало, чтобы сегодня считаться безопасным.