I have two scripts, both using the same algorithm to encrypt a string with same key and IV. But result is different. Is openssl_encrypt still using a different padding scheme than node or am I missing something else hee?
Node
const crypto = require('crypto');
var passphrase = '29486a7a37664140';
var iv = '76e69938cdf5bb64';
var text = '1234567890123456';
var cipher = crypto.createCipheriv('aes-128-ctr', passphrase, iv)
var crypted = cipher.update(text,'utf8','hex')
crypted += cipher.final('hex');
var result = crypted + ':' + iv;
console.log('crypted: (' + crypted.length + ' chars)', crypted);
// crypted: (32 chars) b94107e56900ec8270a847bbf457eaa6
PHP
<?php
$encrypt_method = "AES-128-CTR";
$passphrase = '29486a7a37664140';
$iv = '76e69938cdf5bb64';
$text = '1234567890123456';
$encrypted = openssl_encrypt( $text, $encrypt_method, $passphrase, 0, $iv );
echo 'crypted (' . strlen($encrypted) . ' chars): ' . $encrypted;
// crypted (24 chars): uUEH5WkA7IJwqEe79Ffqpg==
?>