CryptoJs不能解密我的NodeJS服务器上的URL

我从我的前端到我的后端转发API调用。 我使用密码“somekey”使用CryptoJS.AESencryptionAPI调用。

我的相关客户代码是…

var host = 'http://localhost:3000' $('.send-button').click(function(){ var request = $('.request-input').val(); var encryptedRequest = CryptoJS.AES.encrypt(request, 'somekey'); console.log(encryptedRequest.toString()) var decryptedRequest = CryptoJS.AES.decrypt(encryptedRequest, 'somekey'); console.log('Decrypted Request: ' + decryptedRequest.toString()); handleRequest(encryptedRequest.toString()); }); var handleRequest = function(request){ $.ajax({ type: "GET", url: host + '/requests?call=' + request, success: function(data) { var rawJSON = JSON.stringify(data, null, 2); editor.setValue(rawJSON); }, dataType: 'json' }); } 

相关的服务器端代码是…

 var port = 3000; var serverUrl = "127.0.0.1"; var http = require("http"); var path = require("path"); var fs = require("fs"); var express = require("express"); var CryptoJs = require("crypto-js"); var app = express(); app.get('/requests', function(req, res) { console.log('REQUEST: ' + req); var call = req.query.call; console.log(call) console.log("To send: " + CryptoJs.AES.decrypt(call, 'somekey')); }); 

我一直得到的问题是,当我解密它,要么没有得到原来的url,而是返回一堆乱码。 一个例子是…

 Encryption: U2FsdGVkX1/NRbZkyP60pPu3Cb9IcQ4b9n4zJkExp2LNR3O1EdEpqHLNACnYuatN Decryption: 68747470733a2f2f6e6577736170692e6f72672f76312f61727469636c6573 

或…它只是没有返回,并显示为空白。

理想情况下,我想这样的事情。

 Encryption: U2FsdGVkX1/NRbZkyP60pPu3Cb9IcQ4b9n4zJkExp2LNR3O1EdEpqHLNACnYuatN Decryption: https://newsapi.org/v1/articles 

任何人都可以看到我是东错了吗?

这是一个工作jsfiddle: https ://jsfiddle.net/5Lr6z4zp/1/

encryption结果是Base64string,而解密的string是Hex。 要取回“消息”,你需要将其转换为Utf8:decryptedRequest.toString(CryptoJS.enc.Utf8)

以下是可用的代码的相关部分:

 var request = "testing decryption"; var encryptedRequest = CryptoJS.AES.encrypt(request, 'somekey'); console.log(encryptedRequest) var decryptedRequest = CryptoJS.AES.decrypt(encryptedRequest, 'somekey'); var decryptedMessage = decryptedRequest.toString(CryptoJS.enc.Utf8) console.log('Decrypted Request: ' + decryptedMessage); 

下面是一个解释encryption/解密的资源链接: http : //www.davidebarranca.com/2012/10/crypto-js-tutorial-cryptography-for-dummies/