IllegalArgumentException: IV буфер слишком короткий для данной комбинации смещения / длины

У меня есть одно приложение, которое в PHP шифрует текст с использованием openssl_encrypt следующим методом. (Используя то же значение для соли и iv, что и для ‘239422ae7940144f’)

function encrypt_password($password) {
define('AES_256_CBC', 'aes-256-cbc');
$sessionId = $password;
//random number for encrtyption(salt)
$salt = '239422ae7940144f';
$iv = $salt; //cipher length
$encryptedSession = openssl_encrypt($sessionId, AES_256_CBC, $salt, 0, $iv);
return array('encryptedPassword' => $encryptedSession, 'salt' => $salt);
}

function decrypt_password($result) {
define('AES_256_CBC', 'aes-256-cbc');
$vPassword = 'xUP9PwhcXm5xbKIfiSxMCA==';
//random number for descrypt(salt)
$salt = '239422ae7940144f';
$iv = $salt; //cipher length.
$decrypted = openssl_decrypt($vPassword, AES_256_CBC, $salt, 0, $iv);
return $decrypted;
}

Шифрование пароля ‘abc123’ предоставляет ‘xUP9PwhcXm5xbKIfiSxMCA ==’, а расшифровка его возвращает ‘abc123’.

Как найти эквивалентную программу Java, которая будет делать то же самое. Я попытался использовать пример на Использование Java для расшифровки openssl aes-256-cbc с использованием предоставленного ключа и iv, но это не с

IllegalArgumentException: буфер IV слишком короткий для данного
смещение / длина комбинации.

Ниже приведены строки secretKey и initVector в используемой Java-программе.

    final byte[] secretKey = javax.xml.bind.DatatypeConverter.parseHexBinary("239422ae7940144f");
final byte[] initVector = javax.xml.bind.DatatypeConverter.parseHexBinary("239422ae7940144f");

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]