Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点JS crypto";错误的输入字符串“;_Javascript_Node.js_Node Crypto - Fatal编程技术网

Javascript 节点JS crypto";错误的输入字符串“;

Javascript 节点JS crypto";错误的输入字符串“;,javascript,node.js,node-crypto,Javascript,Node.js,Node Crypto,要从文件中解密字符串 但是,当我对来自fs的字符串使用nodejs解密时,它会给出错误“错误的输入字符串” 试着做一个像这样的字符串它可以工作 var stringInFile= "encryptedString"; console.log(decrypt(stringInFile)); Tho fs中的console.log(数据)也给出了“encryptedString”您的代码没有什么问题。问题是您试图解密的字符串。要解密的字符串不能是任何字符串。它必须是由类似的encrypt函数生成的

要从文件中解密字符串

但是,当我对来自fs的字符串使用nodejs解密时,它会给出错误“错误的输入字符串”

试着做一个像这样的字符串它可以工作

var stringInFile= "encryptedString";
console.log(decrypt(stringInFile));
Tho
fs中的console.log(数据)也给出了“encryptedString”

您的代码没有什么问题。问题是您试图解密的字符串。要解密的字符串不能是任何字符串。它必须是由类似的
encrypt
函数生成的字符串

var crypto = require('crypto');
encrypt = function(text, passPhrase){
    var cipher = crypto.createCipher('AES-128-CBC-HMAC-SHA1', passPhrase);
    var crypted = cipher.update(text,'utf8','hex');
    crypted += cipher.final('hex');
    return crypted;
}

decrypt = function(text, passPhrase){
    var decipher = crypto.createDecipher('AES-128-CBC-HMAC-SHA1', passPhrase)
    var dec = decipher.update(text,'hex','utf8')
    dec += decipher.final('utf8');
    return dec;
}

console.log(decrypt(encrypt("Hello", "123"), "123"));
例如,这段代码工作得非常好,没有错误


希望有帮助。

您的代码没有什么问题。问题是您试图解密的字符串。要解密的字符串不能是任何字符串。它必须是由类似的
encrypt
函数生成的字符串

var crypto = require('crypto');
encrypt = function(text, passPhrase){
    var cipher = crypto.createCipher('AES-128-CBC-HMAC-SHA1', passPhrase);
    var crypted = cipher.update(text,'utf8','hex');
    crypted += cipher.final('hex');
    return crypted;
}

decrypt = function(text, passPhrase){
    var decipher = crypto.createDecipher('AES-128-CBC-HMAC-SHA1', passPhrase)
    var dec = decipher.update(text,'hex','utf8')
    dec += decipher.final('utf8');
    return dec;
}

console.log(decrypt(encrypt("Hello", "123"), "123"));
例如,这段代码工作得非常好,没有错误


希望它有帮助。

是的,如果我像你一样将它作为变量解密,它就会工作。。。但是当字符串从文件加载时它就不起作用了..嗯,没关系,在一些测试中,字符串看起来就像你说的那样,它是文件格式^^它是utf8,bom应该是没有的,如果我像你一样将它作为变量解密,它就起作用了。。。但是当字符串从文件加载时,它就不起作用了..嗯,不要紧,在一些测试上的工作看起来就像你说的字符串一样,它是文件格式^^它是utf8,bom应该是没有的