javascript – 带有RC4的NodeJS加密产生空白

我有一个生成RC4加密字符串的PHP函数.我想使用Node解码该字符串 – 理想情况下使用内置的Crypto模块.但我无法这样做 – 我只是得到一个空白字符串.

PHP代码在这里http://code.google.com/p/rc4crypt/

我的JS代码

crypto = require('crypto');
decipher = crypto.createDecipher("rc4","MY SECRET KEY");
text = "HELLO";
decrypted = decipher.update(text,"utf8","hex");
decrypted += decipher.final("hex");
console.log(decrypted);

我没有得到任何输出.我已经使用openssl list-message-digest-algorithms检查了我的OpenSSL实现是否有RC4

我在最新节点OSX 10.8上.

我愿意使用另一个模块来解密 – 我尝试了cryptojs模块,但没有弄清楚如何让它工作 – 当我尝试RC4时给了我错误.

谢谢

最佳答案
弄清楚了

首先必须使用crypto.createDecipheriv,否则密钥是 – 我相信 – md5哈希而不是使用raw.

其次,输入编码mut设置为二进制.

第三 – 在我的情况下,我正在处理POST数据而不是硬编码字符串,我不得不对其进行urldecode – decodeURIComponent()jsut choked – 但是删除了符号的unescape()做了诀窍ex:

var text = unescape((response.post.myvar + '').replace(/\+/g,'%20'))

var crypto = require('crypto');
decipher = crypto.createDecipheriv("rc4",key,'');    
decrypted = decipher.update(text,"binary","utf8");
decrypted += decipher.final("utf8");
console.log(decrypted);

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...