Я новичок в методологии шифрования AES и пытаюсь реализовать шифрование данных на стороне клиента и расшифровать данные на стороне сервера.
На данный момент я реализовал клиентский портал на Java и серверные скрипты на PHP. Я определяю AES-ключ, соль и шифрую данные на стороне клиента (In-JAVA) с помощью AES-ключа и соли. Теперь я вызываю API с параметром key, salt и data на сервер (php script) и пытаюсь расшифровать данные.
Я использую phpseclib
lib для расшифровки данных.
У меня есть образец decrypt
, как показано ниже. (Примечание: - Я уже декодирую с помощью base64_decode этот ключ, соль и данные перед отправкой в эту функцию)
public function decryptAES($data,$key,$salt){
$cipher = new Crypt_AES(CRYPT_MODE_CBC);
$ivsize = strlen($salt);
$cipher->setIV($salt);
$cipher->setKey($key);
$decrypt = $cipher->decrypt($data);
echo($decrypt);
return $decrypt;
}
Я получаю сообщение decrypt
как ноль. Я заглянул в библиотеку и просмотрел некоторые классы, названные «Base.php», и попытался отладить, когда он фактически расшифровывает данные. Я сбросил открытый текст и получил вывод, как показано ниже.
<code><pre class='xdebug-var-dump' dir='ltr'>
<small>G:\Installer\wamp64\www\userRegistration\lib\phpseclib\Crypt\Base.php:1081:</small>
<small>string</small>
<font color='#cc0000'>'Zx�Q���'m�ԉ��^�ܶB�eKs�>�`��_����c^��m������h�~Ut�'�'</font>
<i>(length=64)</i>
Может ли кто-нибудь помочь мне в этом? или это правильно сделать или методологию, которую я здесь пропустил?