我在将 AES 解密用于缓冲区对象时遇到问题,我希望有人知道我做错了什么......
MyExample:我有一个带有 AES_ENCRYPT 用户名和密码的 MySQL 表...
CREATE TABLE Accounts
(
id INT(4) NOT NULL AUTO_INCREMENT,
username VARBINARY(128) NOT NULL,
password VARBINARY(128) NOT NULL,
PRIMARY KEY(id)
);
DELIMITER |
CREATE TRIGGER encodeAccounts BEFORE INSERT ON Accounts
FOR EACH ROW BEGIN
SET NEW.username = AES_ENCRYPT(NEW.username, 'password');
SET NEW.password = AES_ENCRYPT(NEW.password, 'password');
END;
Node.JS:我正在使用 node-mysql 模块向我的数据发送查询:
SELECT * FROM Accounts;
为密码和用户名返回此类值:
<Buffer 07 86 95 ee 77 df 86 50 ae 18 4c d5 3e 48 42 75>
如何使用 Node.JS 解密方法对其进行解码?我的尝试都失败了...我希望正确选择 AES-128-ECB...
要解读 Node.JS 中的某些内容,应该如下所示:
var decipher = crypto.createDecipher('AES-128-ECB', 'password');
var dec = decipher.update(rows[i].username); // an example, value look like <Buffer ...
dec += decipher.final('utf8');
console.log('dec: ' + dec);
感谢所有帮助:)