这就是我目前正在做的事情:
const crypto = require('crypto');
加密:
const cipher = crypto.createCipher('aes256', 'password');
let encrypted = cipher.update(JSON.stringify(this.state.data), 'utf8', 'hex');
encrypted += cipher.final('hex');
fs.writeFileSync('asdf.enc', encrypted);
解密:
const decipher = crypto.createDecipher('aes256', 'password');
let contents = fs.readFileSync('asdf.enc', 'utf8');
let decrypted = decipher.update(contents, 'hex', 'utf8');
decrypted += decipher.final('utf8');
let data = JSON.parse(decrypted);
但是,我不确定这是否正确,因为我找不到任何代码示例(加密JSON对象并将其保存到文件中的磁盘)。
它似乎相当脆弱(如果我执行两次操作,则使用stringify,任意十六进制编码和错误输出)。另外,我不确定cipher/decipher.final()
正在做什么。管道示例不使用,但我不知道如何在这里使用管道。
(另外,文件非常小,所以我觉得我可以同步)