【发布时间】:2021-06-09 14:02:01
【问题描述】:
module.exports.crypt = async ({ secretKey, ivKey }, data) => {
let encryptedData = {};
for (key in data) {
const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, ivKey);
encrypted = cipher.update(data[key]);
encrypted = Buffer.concat([encrypted, cipher.final()]);
encryptedData[key] = encrypted.toString('base64');
}
return encryptedData;
}
此代码 sn-p 适用于普通加密,但当我尝试加密 'test\testemployee' 字符 '\t' 被省略(与 "\n" "\r" 相同)。有没有办法避免这种情况?
【问题讨论】:
-
我强烈怀疑您在其他代码中的某个地方正在剥离这些字符,无论是在加密之前还是在解密之后。在加密之前打印出
data[key],然后查看你的解密代码并在解密后立即检查字符串(在它返回给其他可能修改它的东西之前)。您的错误不在此代码之外。
标签: node.js cryptography aes