【发布时间】:2015-10-07 07:45:47
【问题描述】:
我有一个用 AES-128 加密 IP 地址的 PHP 代码:
$ip = "MY_IP";
$secret = "MY_KEY";
$ip = @mcrypt_ecb(MCRYPT_RIJNDAEL_128, $secret, $ip, MCRYPT_ENCRYPT);
$encrypted = bin2hex($ip); // encrypted: 2854edb405cb7230ba1f4b87acddba8a
我需要做的是拥有相同的代码,但使用 javascript/node.js。我在 crypto node.js 本机模块中进行了搜索,但无法重现相同的结果:
var crypto = require('crypto');
var ip = "MY_IP";
var secret = "MY_KEY";
var cipher = crypto.createCipher("AES-128-ECB", secret);
var encrypted = cipher.update(ip, 'utf8', 'hex');
encrypted += cipher.final('hex'); // encrypted: e84c06888696edda0139e98fc2c0a8cc
有人有想法吗?
【问题讨论】:
-
停止使用
@隐藏错误。它掩盖了问题。 -
连接是什么?此外,这个 php 代码不是我的,所以你的评论没有帮助。
-
这种联系是不好的做法,会导致难以追踪的错误发生。如果你做任何 PHP 工作,几乎在所有情况下都避免使用
@运算符。
标签: javascript php node.js encryption