使用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);
- Javascriptencryption库不能encryption和解密一个简单的例子程序中的string
- .NET和nodejs之间的AESalgorithm值差异,CryptoJS
- Nodejs crypto.pbkdf2结果不同于CryptoJS.PBKDF2
- Angular CryptoJs Encryption在Node JS CryptoJS中没有解密
- Rfc2898DeriveBytes在javascript中的等价物?
- 节点encryption-js AESencryption – >解密使用情况?
- nodejsencryption模块与crypto-js
- Crypto JS:TripleDES不能正确encryption
- 如何解密CryptoJS中的AES 128(nodejs / web浏览器)