使用RC4的NodeJS Crypto产生空白
我有一个生成RC4encryptionstring的PHP函数。 我想用Node解码这个string – 最好是使用内置的Crypto模块。 但我无法这样做 – 我只是得到一个空白的string。
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实现有RC4使用openssl list-message-digest-algorithms
我在OSX 10.8上,最新的节点。
我打开使用另一个模块解密 – 我试过cryptojs模块,但没有弄清楚如何使其工作 – 当我尝试RC4给了我错误。
谢谢
弄清楚了
首先必须使用crypto.createDecipheriv否则关键是 – 我相信 – MD5散列,而不是使用原始的。
其次,input编码mut被设置为二进制。
第三 – 在我的情况下,我正在处理POST数据,而不是一个硬编码的string,我不得不urlDEcode它 – decodeURIComponent()jsut呛 – 但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);
- 由于crypto.DEFAULT_ENCODING ='binary',节点6升级导致aws-sdk的SignatureDoesNotMatch错误。
- Node.js和Mongodb安全+encryption选项的源代码
- 在Meteor中正确启用filepicker.io的安全性
- CryptoJs不能解密我的NodeJS服务器上的URL
- 用CryptoJS解密openssl AES
- AES CryptoJSencryption和phpseclib解密
- nodejsencryption模块与crypto-js
- Crypto JS:TripleDES不能正确encryption
- .NET和nodejs之间的AESalgorithm值差异,CryptoJS