IllegalArgumentException:对于给定的偏移量/长度组合,IV缓冲区太短 [英] IllegalArgumentException: IV buffer too short for given offset/length combination
问题描述
我有一个应用程序,该应用程序在PHP中使用openssl_encrypt通过以下方法对文本进行加密. (使用与239422ae7940144f'相同的盐和iv值)
I have one application which is in PHP encrypting text using openssl_encrypt with following method. (Using same value for salt and iv as '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'.
Encrypt of password 'abc123' provides 'xUP9PwhcXm5xbKIfiSxMCA==' and decrypting it gives back 'abc123'.
如何找到等效的Java程序来做同样的事情.我试过在使用Java的示例使用提供的密钥和iv来解密openssl aes-256-cbc,但由于
How to find equivalent java program which would do the same. I tried using the example on Using Java to decrypt openssl aes-256-cbc using provided key and iv, but it fails with
java.lang.IllegalArgumentException:IV缓冲区对于给定而言太短 偏移量/长度组合.
java.lang.IllegalArgumentException: IV buffer too short for given offset/length combination.
以下是我正在使用的Java程序中的secretKey和initVector行.
Following are the secretKey and initVector lines in java program I am using.
final byte[] secretKey = javax.xml.bind.DatatypeConverter.parseHexBinary("239422ae7940144f");
final byte[] initVector = javax.xml.bind.DatatypeConverter.parseHexBinary("239422ae7940144f");
推荐答案
此"sessionId"的长度是短.必须至少为"iv"长度
The length of this "sessionId" is short. Must be at least "iv" length
这篇关于IllegalArgumentException:对于给定的偏移量/长度组合,IV缓冲区太短的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!