aes-js
aes-js copied to clipboard
Uncaught Error: invalid plaintext size (must be 16 bytes)
Hi,
Why this string '210c475118a95a1778a1ab2923192d59¤80181b005a0384318f0cdcfe372f77f7¤MP3_320¤1490338212¤4¤ ' that has the length of 96 characters can't be converted to array of 16 bytes ?
This code aesjs.utils.utf8.toBytes(text) is returning 102 bytes from that string above.
Thanks.
Hi,
Why this string '210c475118a95a1778a1ab2923192d59¤80181b005a0384318f0cdcfe372f77f7¤MP3_320¤1490338212¤4¤ ' that has the length of 96 characters can't be converted to array of 16 bytes ?
This code aesjs.utils.utf8.toBytes(text) is returning 102 bytes from that string above.
Thanks.
Consider 9 empty characters in the end of string.
I've studying a bit about this subject because this is new to me. In PHP script everything works perfectly coding like this:
$encrypted = openssl_encrypt($data, "AES-128-ECB", $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
But in Java Script I can't reproduce the same result with this code:
var aesEcb = new aesjs.ModeOfOperation.ecb(key); var encryptedBytes = aesEcb.encrypt(pkcs7.pad(text)); var hex = aesjs.utils.hex.fromBytes(encryptedBytes); console.log(hex);
In some tests I've noticed this flag "OPENSSL_ZERO_PADDING" in PHP is the cause of the the difference between the results. But It's the problem because I have to get the result correct that's is generated when has OPENSSL_ZERO_PADDING. Everyone has some idea ?
1 char = 1 byte = 8 bits. You're trying to fit 96 bytes in a 16 bytes array