在《基于js-ipfs-api实现ipfs的文件上传与下载》中已经实现了内容和文件上传ipfs,然后下载到本地。ipfs具有分布式存储和不可篡改性等优点,但隐私性较差,一旦上传到ipfs之后,用户就可以从任一ipfs节点的网关获取数据。一个比较简单的方法就是对内容采用对称加密之后,再进行存储。对于企业用户来说,可能还需要搭建私有的ipfs集群,文件加密之后存储到ipfs集群中。
AES加密模块(aes.js)
const fs = require('fs');
const crypto = require('crypto');
const algorithm = 'aes-256-ctr';
exports.encrypt = (buffer,password)=>{
let cipher = crypto.createCipher(algorithm,password)
let crypted = Buffer.concat([cipher.update(buffer),cipher.final()]);
return crypted;
}
exports.