[英]Node JS crypto “Bad input string”
要解密文件中的字符串。
但是,當我對來自fs的字符串使用nodejs解密時,它給出錯誤“錯誤的輸入字符串”
var fs = require('fs');
var crypto = require('crypto');
function decrypt(text){
var decipher = crypto.createDecipher('aes-256-ctr', 'password')
var dec = decipher.update(text,'hex','utf8')
dec += decipher.final('utf8');
return dec;
}
fs.readFile('./file.json', 'utf8', function (err,data) {
if (err) return console.log(err);
console.log(decrypt(data));
});
嘗試只是制作一個像這樣的字符串
var stringInFile= "encryptedString";
console.log(decrypt(stringInFile));
來自fs的console.log(data)也給出了'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"));
例如,此代碼可以完美運行且沒有錯誤。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.