正确的加密/解密JSON到磁盘/从磁盘解密的方法?

时间:2018-01-12 15:31:41

标签: javascript json node.js encryption cryptography

这就是我目前正在做的事情:

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()正在做什么。管道示例不使用,但我不知道如何在这里使用管道。

(另外,文件非常小,所以我觉得我可以同步)

0 个答案:

没有答案