【发布时间】:2011-11-10 08:42:56
【问题描述】:
我正在尝试编写一个函数,该函数将使用本机 openssl 为我做一些 RSA 繁重的工作,而不是使用 js RSA 库。目标是
- 从文件中读取二进制数据
- 在node进程中做一些处理,使用JS,得到一个包含二进制数据的Buffer
- 将缓冲区写入 exec 命令的标准输入流
- RSA 加密/解密数据并将其写入标准输出流
- 将输入数据返回到 JS 进程中的 Buffer 以进行进一步处理
Node 中的child process module 有一个 exec 命令,但我看不到如何将输入通过管道传输到进程并将其通过管道传输回我的进程。基本上我想执行以下类型的命令,但不必依赖将内容写入文件(没有检查 openssl 的确切语法)
cat the_binary_file.data | openssl -encrypt -inkey key_file.pem -certin > the_output_stream
我可以通过编写一个临时文件来做到这一点,但如果可能的话,我想避免它。产生一个子进程允许我访问标准输入/输出,但还没有为 exec 找到这个功能。
有没有一种干净的方法可以按照我在这里起草的方式做到这一点?是否有一些替代方法可以为此使用 openssl,例如openssl lib的一些本机绑定,这将允许我在不依赖命令行的情况下执行此操作?
【问题讨论】:
标签: javascript node.js exec rsa