Расшифруйте зашифрованные пароли PBE с помощью Postgres SQL
У меня есть приложение, которое использует пакет Java javax.crypto для шифрования строк и хранения их в базе данных postgresql. Нам нужно расшифровать эти строки из Postgres SQL. Я знаю о пакете pgcrypto для postgres SQL, но не знаю, какую из функций pgcrypto мне следует использовать для дешифрования строк. Код Java использует алгоритм Crypto "PBEWithMD5AndDES", и я не могу найти соответствующий алгоритм (ы) в пакете pgcrypto.
Например, если закрытым ключом является "a_private_key", то код приложения использует следующие функции для генерации секретного ключа и для шифрования строки.
SecretKey secretKey = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(new PBEKeySpec("a_private_key".toCharArray()));
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES")
cipher.init(Cipher.ENCRYPT_MODE, secretKey,
new PBEParameterSpec(
new byte[] { (byte) 0x30, (byte) 0x31, (byte) 0x32, (byte) 0x33,
(byte) 0x34, (byte) 0x35, (byte) 0x36, (byte) 0x37, },
15);
byte[] crypted = cipher.doFinal("StringToEncrypt".getBytes(UTF8));
1 ответ
Закрытие этого вопроса сейчас, так как комментарии от ntoskml и Eilke верны; PBE - это криптография только для Java, и поэтому я не смог расшифровать ее из Postgresql. В итоге мне пришлось придумать решение проблемы Java/JDBC.