解密.update上的encryption错误
我正在为Node项目编写一个JavaScript模块。
我得到一个非常模糊的错误
protocol\Parser.js:82 throw err; TypeError: error:0000000:lib(0):func(0):reason(0) at Decipher.Cipher.update (crypto.js:279:27)
以下是我的javalogin.js文件。 错误似乎发生在decipher.update(rows[i].CC, 'hex', 'utf8');
线。
我有一些控制台打印出来。
console.log('DB UserName:', rows[i].UserName); //returns correct username console.log('DB CC: ', rows[i].CC); //returns 2bf9kdk02kdnf3dk (correct CC hash on db)
JavaLogin.js:
var mysql = require('mysql'); var crypto = require('crypto'); var sha = require('sha1'); var algorithm = 'aes256'; // or any other algorithm supported by OpenSSL var key = 'secret'; var cipher = crypto.createCipher(algorithm, key); var decipher = crypto.createDecipher(algorithm, key); decipher.setAutoPadding(auto_padding=true); var db = mysql.createConnection( { host : 'host location', user : 'username', password : 'password', database : 'databaseName', } ); exports.auth = function(query, callback){ db.query(query, function(err, rows, fields) { if (err) throw err; for (var i in rows) { console.log('DB UserName:', rows[i].UserName); console.log('DB CC: ', rows[i].CC); var decrypted = decipher.update(rows[i].CC, 'hex', 'utf8'); decrypted += decipher.final('utf8'); console.log(decrypted); } var info = rows; return callback(null,info); }); }; exports.add = function(query, callback){ db.query(query, function(err, rows, fields) { var encrypted = cipher.update('ccnumber', 'utf8', 'hex'); encrypted += cipher.final('hex'); if (err) throw err; // for (var i in rows) { // console.log('DB Info:', rows[i].UserName); // } var info = rows; return callback(null,info); }); };
感谢您在评论中提供的小而有用的帮助。 我明白了这一点。
在原始邮政我试图设置var decipher = crypto.createDecipher(algorithm,key);
到一个全局variables,所以我可以在我的JavaLogin.js中的多个函数中使用它。
如果有人能告诉我如何做到这一点,我将不胜感激。
下面的工作代码部分:
exports.auth = function(query, callback){ db.query(query, function(err, rows, fields) { if (err) throw err; for (var i in rows) { console.log('DB UserName:', rows[i].UserName); console.log('DB CC: ', rows[i].CC); var decipher = crypto.createDecipher(algorithm, key); //moved this from the top of the file var decrypted = decipher.update(rows[i].CC, 'hex', 'utf8'); decrypted += decipher.final('utf8'); console.log("decrypted:" + decrypted); } var info = rows; return callback(null,info); }); };