javascript - Node.js 代理请求并使用 AES 对其进行加密

标签 javascript node.js encryption express aes

在 Express 应用程序中编写一条路由的最简单方法是什么,该路由将请求代理到另一台服务器,并在将响应发送到客户端(将在客户端解密)之前对响应进行加密。 是否可以使用流来完成这一切?

最佳答案

var request = require('request'),
    http = require('http'),
    crypto = require('crypto'),
    acceptor = http.createServer().listen(8089);

acceptor.on('request', function(r, s) {
    var ciph = crypto.createCipher('aes192', 'mypassword');

    // simple stream object to convert binary to string
    var Transform = require('stream').Transform;
    var BtoStr = new Transform({decodeStrings: false});
    BtoStr._transform = function(chunk, encoding, done) {
       done(null, chunk.toString('base64'));
    };

    // get html from Goog, could be made more dynamic
    request('http://google.com').pipe(ciph).pipe(BtoStr).pipe(s);


    //  try encrypt & decrypt to verify it works, will print cleartext to stdout
    //var decrypt = crypto.createDecipher('aes192', 'mypassword');
    //request('http://google.com').pipe(ciph).pipe(decrypt).pipe(process.stdout);
})

关于javascript - Node.js 代理请求并使用 AES 对其进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19230277/

相关文章:

javascript - 如何从客户端向数据库插入数据?

javascript - 将脚本应用到具有唯一 ID 的多个视频标签

java - 如何与客户交换加密 key ?

java.security.UnrecoverableKeyException : no match

php - 使用 PHP 启用和禁用 JavaScript 按钮

javascript - Underscore 从 JSON 对象创建对象数组

javascript - express.Createserver() 不工作

node.js - Sequelize Associate Objects 失败,没有方法 addX

node.js - 我如何在 webdriver.io 中以 32 位模式启动 IE

c++ - 读/写文件,字节丢失,可能是字符溢出