我正在使用 PHP 和 Nodejs 使用 OpenSSL 进行对称加密。PHP 使用 OpenSSL 库,Node.js 解密基于实现的加密。问题是 Node.js 中解密的文本只是部分正确。
function encrypt($text, $pw, $base64 = true) {
$method = 'aes-256-cbc';
$iv_len = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($iv_len);
$pw = substr(md5($pw),0,32);
$cipher = openssl_encrypt ($text ,$method ,$pw ,!$base64 ,$iv );
if($base64) {
$pw = base64_encode($pw);
$iv = base64_encode($iv);
}
return array(
'iv' => $iv,
'pw' => $pw,
'text' => $text,
'cipher' => $cipher
);
}
Run Code Online (Sandbox Code Playgroud)
var cipher = new Buffer(data.cipher, 'base64');
var iv …Run Code Online (Sandbox Code Playgroud) 一段时间后,我再次尝试使用node.js和socket.IO,但它没有按预期工作:
创建了socketIO_server.js并添加了这一行代码:
var socketIO = require('socket.io').listen(8000);
Run Code Online (Sandbox Code Playgroud)启动socketIO_server.js和控制台日志说"info - socket.io started"
当我尝试通过http://domain.tld:8000/socket.io/socket.io.js访问客户端库时,它还会给出消息"welcome to socket.io",但控制台日志显示"提供的静态内容" /socket.io.js".我不知道为什么会这样!我虽然运行并行的nginx服务器导致此问题,但停止服务器并没有改变任何东西.
感谢阅读和帮助!