PHP шифрует и дешифрует в узле JSPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP шифрует и дешифрует в узле JS

Сообщение Anonymous »

У меня есть шифрование на PHP и расшифровка на узле JS.
Я знаю, что об этом есть много тем. Но все они утверждают, что это не работает.
В моем случае работает. Ну вроде того.
PHP

Код: Выделить всё

define('CRYPT_KEY', 'bwAZA48aaYd34PGhBWSutIIFaCu4oAe/Ps24/Rx+bw0=');

class Encryption {
public function encrypt($data) {
$output = false;
$methode = "AES-256-CBC";
$key = base64_decode(CRYPT_KEY);

$ivSize  = openssl_cipher_iv_length($methode);
$ivData  = openssl_random_pseudo_bytes($ivSize);
$encData = openssl_encrypt($data, $methode, $key, OPENSSL_RAW_DATA, $ivData);
$output = base64_encode($ivData . $encData);

return $output;
}

public function decrypt($data) {
$output = false;
$methode = "AES-256-CBC";
$key = base64_decode(CRYPT_KEY);

$ivSize  = openssl_cipher_iv_length($methode);
$data = base64_decode($data);
$ivData   = substr($data, 0, $ivSize);
$encData = substr($data, $ivSize);
$output = openssl_decrypt($encData, $methode, $key, OPENSSL_RAW_DATA, $ivData);

return $output;
}
}

echo $encryption->encrypt('Hello world');
// output: 8ZtGcgDeSCN8f+jrZ/W2tWL40DIncjmCwanFiNrEhyE=
узел JS

Код: Выделить всё

const key = Buffer.from('bwAZA48aaYd34PGhBWSutIIFaCu4oAe/Ps24/Rx+bw0=', 'base64');
const iv = Buffer.from(crypto.randomBytes(16), 'base64');

function decrypt(data) {
const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
const decripted = decipher.update(data, 'base64', 'utf8') + decipher.final('utf8');

return decripted;
}

console.log('Output: ', decrypt('8ZtGcgDeSCN8f+jrZ/W2tWL40DIncjmCwanFiNrEhyE='));
первая часть вывода зашифрована

Код: Выделить всё

result: ▬�2���◄p��r♣�'Hello world
Кто-нибудь знает, почему это происходит. Я делаю что-то не так?

Подробнее здесь: https://stackoverflow.com/questions/739 ... in-node-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»