2

PHP

function encodeBase64Url($data)
{
    return strtr(base64_encode($data), ['+' => '-', '/' => '_', '=' => '']);
}


function encrypt($data, $secret)
{
    $data = json_encode($data);
    $salt = openssl_random_pseudo_bytes(16);
    $data = openssl_encrypt($data, 'AES-128-CBC', $secret, $options = OPENSSL_RAW_DATA, $salt);
    $data = encodeBase64Url($salt . $data);
    return $data;
}

My node.js code example (NOT Working)

function encrypt(data, secret){
    data = JSON.stringify(data);
    let salt = crypto.randomBytes(16);
    let encryptor = crypto.createCipheriv('AES-128-CBC', secret, salt);
    let result = Buffer.concat([salt, encryptor.update(data), encryptor.final()]);

    result = encodeBase64Url(result);
    return result;
}


function encodeBase64Url(data){
    let res = Buffer.from(data).toString('base64');
    res = res.replace(/\+/g,'-').replace(/\//g, '_').replace(/=/g, '');
    return res;
}

I get error Error: Invalid key length

I do not understand why I get this error. Thank you for any help

0 Answers0