У меня есть одно приложение, которое в 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");
Задача ещё не решена.
Других решений пока нет …