[英]console.log and error is not printing
我有一个加密文件的脚本,但是我想打印一个console.log();。 加密之后。 我尝试了以下操作,但没有成功:
var figlet = require('figlet');
var encryptor = require('file-encryptor');
var crypto = require('crypto');
var CryptoJS = require("crypto-js");
var node_cryptojs = require('node-cryptojs-aes');
figlet('ZaCrypt', function(err, data) {
if (err) {
console.log('Something went wrong...');
console.dir(err);
return;
}
console.log(data)
});
var message = "Zaseth is my bff";
var key = encrypted_json_str;
var options = {
algorithm: 'blowfish'
};
// Encrypt message
var r_pass = crypto.randomBytes(128);
var r_pass_base64 = r_pass.toString("base64");
var CryptoJS = node_cryptojs.CryptoJS;
var JsonFormatter = node_cryptojs.JsonFormatter;
var encrypted = CryptoJS.AES.encrypt(message, r_pass_base64,
{
format: JsonFormatter
});
var encrypted_json_str = encrypted.toString();
// Encyption complete
// Encrypt file.
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function (err){
if (err) {
console.log("There was an error...");
throw err;
return;
} else {
console.log("File encrypted!");
}
// Encryption complete.
});
为什么这不起作用? 我要在其中打印内容的加密部分位于底部。
我只是尝试了以下方法,但是没有用:
// Encrypt file.
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function (err) {
if(err) {
return console.log(err);
}
console.log("File encrypted!");
// Encryption complete.
});
您指定了太多参数。 因此,您的回调位于错误的位置。
Encryptor. encryptFile()
Encryptor. encryptFile()
定义了对4-5个参数的处理:
Encryptor.encryptFile = function(inputPath, outputPath, key, options, callback) {
if(typeof options === 'function') {
callback = options;
options = {};
}
// and so on...
您的代码有6个:
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function(err){
// ^-- what is this?
该message
参数使一切向下移动。 encryptFile()
认为您的消息是密钥,您的密钥是选项,您的选项是回调....,并且完全忽略了回调。 由于意外的无效参数类型,它还可能导致在错误处理之前引发错误。
你有表达
var key = encrypted_json_str
之前
encrypted_json_str = encrypted.toString()
这意味着为key
分配了undefined
(因为那时encrypted_json_str
encryptFile()
仍未undefined
),这将导致encryptFile()
方法抛出错误
正如@canon所解释的那样,在调用encryptFile()
,您有一个额外的参数message
。 这导致它使用message
参数作为其key
参数,将key
作为options
并将options
作为callback
。 由于您的options
实际上不是函数,因此当encryptFile()
尝试调用它(认为它是callback
)时,它会引发错误,指出callback is not a function
在你调用encryptFile()
方法,删除message
参数和替换key
与参数encrypted_json_str
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.