我试图解密使用OpenSSL的CryptoJS 3.1.5加密的文件。解密OpenSSL的AES与CryptoJS
一切工作正常,如果我加密和使用CryptoJS壳,这同样适用于OpenSSL的解密,但是当我尝试CryptoJS与OpenSSL的混合事事不顺心。
该文件使用此命令创建:
openssl enc -aes-256-cbc -in file.txt -out file.enc -k password
,我尝试解密这样的:
fs.readFile('file.enc', function(err, data) {
var decrypted = CryptoJS.AES.decrypt(
data.toString(),
"password",
{ mode : CryptoJS.mode.CBC }
);
console.log(decrypted.toString(CryptoJS.enc.Utf8));
});
// Give me this err: Uncaught Error: Malformed UTF-8 data
而在其他的方式,我做的:
fs.readFile('file.txt', function(err, data) {
var encrypted = CryptoJS.AES.encrypt(
data.toString(),
"password",
{ mode : CryptoJS.mode.CBC });
fs.writeFile('file.enc', encrypted);
});
然后在Shell中:
openssl enc -d -aes-256-cbc -in file.enc -out file2.txt -k password
// Give me this err: bad magic number
我错过了一些明显的东西吗?
你为什么要使用CryptoJS在node.js中是否有集成的'crypto'模块。另外,您正在使用哪个CryptoJS模块? –
我需要CryptoJS 3.1.5 我遇到了使用nodejs加密模块的类似问题,如果需要,我可以发布更多示例代码。 – Tagada
对不起,我使用这一个:https://www.npmjs.com/package/crypto-js – Tagada