Duplicate php openssl_encrypt in JavaScript

Viewed 1571

I'm trying to duplicate PHP string encryption using JavaScript. Here is the PHP code:

<?php

$iv = "1234567890123456";
$key = "aaaaaaaaaaaaaaaa";
$input = "texttexttexttext";

$encrypted = openssl_encrypt($input, "AES-256-CBC", $key, 0, $iv);

echo $encrypted;
// "ZwY1i+vqP3acszeDiscCTx/R4a6d2AtkcInmN9OTCNE="

However, when I try to duplicate it in JavaScript it gives a different ciphertext:

var aesjs = require("aes-js");
var base64 = require("js-base64");

var iv = aesjs.utils.utf8.toBytes("1234567890123456");
var key = aesjs.utils.utf8.toBytes("aaaaaaaaaaaaaaaa");
var text = aesjs.utils.utf8.toBytes("texttexttexttext");

var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var encryptedBytes = aesCbc.encrypt(text);

var b64encoded = base64.Base64.encode(encryptedBytes);

console.log(b64encoded);
// "MTcyLDIsNjAsMTU5LDcxLDEwLDE4Myw4LDE…wyMTIsMjIyLDk3LDEyNCw1MywxNzIsMjIy"

I have no clue on how to make it give the same output. Any ideas?

1 Answers
Related