我正在使用nginx将请求传递给Node应用程序.该应用程序基本上充当html的远程缓存(检查用户请求的是否在redis数据库中,如果它只是显示,如果没有抓住它并将其存储在redis缓存中并提供它.)
我很好奇是否有通过让nginx直接从redis提供内容来绕过点击Node应用程序?我一直在使用http_redis模块,但我无法让它工作.
一个简单的例子是:http://mywebsite.com/a其中nginx将在"a"键中提供内容,或者如果密钥不存在则将其传递给节点应用程序.这甚至可能吗?
我想在ruby应用程序中加密一些数据,然后在nodejs应用程序中对其进行解码.我一直试图让这个工作,现在我只是尝试加密两种语言中的同一块数据,以获得相同的结果,但我似乎无法做到这一点.
//js
var crypto = require('crypto');
var key = crypto.createHash('sha1').update('key').digest('hex');
console.log(key); // a62f2225bf70bfaccbc7f1ef2a397836717377de
var encrypted = "";
var cipher = crypto.createCipher('bf-cbc', key);
encrypted += cipher.update('text');
encrypted += cipher.final('hex');
console.log(encrypted); //outputs 4eafd5542875bd3c
Run Code Online (Sandbox Code Playgroud)
所以看起来我从编码中得到一个十六进制字符串.
#ruby
require 'openssl'
require 'digest/sha1'
c = OpenSSL::Cipher::Cipher.new("bf-cbc")
c.encrypt
# your pass is what is used to encrypt/decrypt
c.key = key = Digest::SHA1.hexdigest("key")
p key # a62f2225bf70bfaccbc7f1ef2a397836717377de
e = c.update("text")
e << c.final
p e # ??;??
Run Code Online (Sandbox Code Playgroud)
是否存在某些我遗漏的编码问题.我尝试使用base64解码e,但这并没有产生与节点应用相同的结果.有什么指针吗?
更新:所以这和朋友一样接近,我可以得到:https://gist.github.com/a880ea13d3b65a21a99d.Sheesh,我只是想在ruby中加密一些东西并在节点中解密它.
更新2:好的,这个问题中的代码让我有很多方式:https://github.com/joyent/node/issues/1395