小编Rya*_*n S的帖子

使用nginx直接从redis缓存中提供内容

我正在使用nginx将请求传递给Node应用程序.该应用程序基本上充当html的远程缓存(检查用户请求的是否在redis数据库中,如果它只是显示,如果没有抓住它并将其存储在redis缓存中并提供它.)

我很好奇是否有通过让nginx直接从redis提供内容来绕过点击Node应用程序?我一直在使用http_redis模块,但我无法让它工作.

一个简单的例子是:http://mywebsite.com/a其中nginx将在"a"键中提供内容,或者如果密钥不存在则将其传递给节点应用程序.这甚至可能吗?

caching nginx redis

15
推荐指数
2
解决办法
2万
查看次数

使用ruby用节点解密来加密数据

我想在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

javascript ruby encryption cryptography node.js

8
推荐指数
2
解决办法
3499
查看次数

标签 统计

caching ×1

cryptography ×1

encryption ×1

javascript ×1

nginx ×1

node.js ×1

redis ×1

ruby ×1