1
私は同じアルゴリズムを使って同じキーとIVで文字列を暗号化します。しかし、結果は異なります。 openssl_encryptはノードとは別のパディングスキームを使用していますか?ノードとPHPと異なるAES暗号
ノード
const crypto = require('crypto');
var passphrase = '29486a7a37664140';
var iv = '76e69938cdf5bb64';
var text = '123456789';
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 = '123456789';
$encrypted = openssl_encrypt($text, $encrypt_method, $passphrase, 0, $iv);
echo 'crypted (' . strlen($encrypted) . ' chars): ' . $encrypted;
// crypted (24 chars): uUEH5WkA7IJwqEe79Ffqpg==
?>
おかげで動作します – BeetleJuice