Реализация PHP PEAR Crypt_CBC в Java - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь зашифровать значение, используя шифр BLOWFISH.Реализация должна быть в Java и иметь тот же результат, что и версия php:

require_once('/usr/share/php/Crypt/CBC.php');
....
$cipher = new Crypt_CBC($key, 'BLOWFISH');
$encryptedPassword = $cipher->encrypt($valueToEncrypt);
echo "ENCODED STRING: " . $encryptedPassword;
$encodedPassword = base64_encode($encryptedPassword);
echo "ENCRYPTED STRING: " . $encodedPassword;

Я пробовал что-то подобное, но мне не удается получить что-то даже удаленно похожее:

SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "Blowfish");
String IV = "RandomIV";
Cipher cipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
init(Cipher.ENCRYPT_MODE, keySpec
    , new javax.crypto.spec.IvParameterSpec(IV.getBytes())
);
byte[] encryptedBytes = cipher.doFinal(toEncrypt.getBytes());
String encoded =  Base64.getEncoder().encodeToString(encryptedBytes);

Любая идея помощи приветствуется

...