Nodejs: расшифровать данные в php и переписать это в узле js - PullRequest
0 голосов
/ 04 октября 2019

У меня есть некоторый код расшифровки php, и я хочу переписать этот расшифровку в узле js.

    $password         = "password";
    $salt             = "salt";   
    $data = "somebase64data"
    $prepared_key         = openssl_pbkdf2($password, $salt, 256, 65536, "sha256");
    $rtc             = openssl_decrypt(base64_decode(data),"AES-256-CBC", 
    $prepared_key, OPENSSL_RAW_DATA, "LQjFLCU3sAVplBC3");
    $rtc            = gzdecode($rtc);
    file_put_contents(dirname(__FILE__) . '/log/tcs.new.crypt.' . $o . '.rtc.log', $rtc);

Я пытаюсь сделать это:

function decrypt(text, salt, iv) {
    const password = "password";
    crypto.pbkdf2(password, salt, 65536, 256, "sha256", (err, key) => {
      try {
        const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
        const decrypted = decipher.update(text, "base64", "binary");
        decrypted += decipher.final("binary");
      } catch (error) {
        throw new Error(error)
      }
    });
  }
  decrypt(plainText, salt, iv);

И затем у меня есть эта ошибка:Неверная длина ключа. Я знаю, что мой ключ после pbkdf2 - это буфер длиной 256 байт. Но функция createDecipheriv ожидает ключ длиной 32 байта

...