我正在尝试使用Bookshelf-encrypted-columns来加密我的数据,因为我需要密钥和密码。关键不是问题,而是在创建" cipher"我收到以下错误:
"Error: Invalid cipher: 78c2527b394d0d4016571fea85e40c52"
以下代码需要密码:
bookshelf.plugin(encryptColumns, {
cipher: getCipher(config.encrypt.aesKey),
key: config.encrypt.aesKey
});
使用nodejs crypto createCipheriv
创建密码的函数function getCipher (key) {
// generate initialization vector
let iv = new Buffer.alloc(16); // fill with zeros
// encrypt data
return crypto.createCipheriv('aes-256-cbc', key, iv);
}
是否有创建密码的解决方案?
答案 0 :(得分:1)
cipher
值应该是描述要使用的算法的字符串,而不是Cipher
对象的实例。
如需参考,请参阅the default cipher value和the value passed to the plugin instantiation call for the unit tests。
在您的代码中,请尝试使用:
bookshelf.plugin(encryptColumns, {
cipher: 'aes-256-cbc',
key: config.encrypt.aesKey
});