cyb*_*bat 5 javascript node.js rc4-cipher cryptojs node-crypto
我有一个生成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);
Run Code Online (Sandbox Code Playgroud)
我没有得到任何输出.我已经使用openssl list-message-digest-algorithms检查了我的OpenSSL实现是否有RC4
我在最新节点OSX 10.8上.
我愿意使用另一个模块来解密 - 我尝试了cryptojs模块,但没有弄清楚如何让它工作 - 当我尝试RC4时给了我错误.
谢谢
弄清楚了
第一个必须使用 crypto.createDecipheriv 否则密钥是 - 我相信 - md5 散列而不是使用原始。
其次,输入编码必须设置为二进制。
第三-在我的例子中,我处理的是POST数据而不是硬编码的字符串,我必须对它进行url解码-decodeURIComponent() 简直窒息-但是 unescape() 删除了 + 符号就解决了这个问题,例如:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2530 次 |
| 最近记录: |