IPFS是星际文件系统,它用于在漫衍式文件系统中存储和共享数据的协议和对等网络。IPFS利用内容寻址,来独一标识毗连所有计较设备的每个文件。
最近,NodeJS中的IPFS文件加密示例项目,实现了加密、解密文件,并将其存储在IPFS网络上。这是托管和掩护任何敏感数据的抱负办理方案。V丨ipfssy
本日,我们看一下,,如安在将文件上传到IPFS之前对其举办加密。同样,它可以解密和下载这些文件。该办理方案同时利用RSA和AES加密算法来实现最大的安详性。
首先,安装:
1)下载并安装IPFS CL
2)初始化IPFS:?ipfs init
3)启动IPFS:?ipfs daemon
4)在另一个提示下运行以下呼吁:
git clone https://github.com/healzer/ipfs-file-encryption.git
cd ipfs-file-encryption
npm install
node index.js
其次,我们可以利用提供的_testing()成果来测试和验证以下成果:
最后,设置:
您大概要index.js按照您的情况变动这些变量:
ipfsEndPoint (default: 'http://localhost:5001')
rest_port (default: 3000)
总的来说,加密计策同时利用RSA和AES来实现最大的安详性。加密文件举办上传,所有这些操纵均在内存中举办。对付很是大的文件,大概需要在磁盘上执行此操纵。
同时,按照AES加密算法的要求,将16字节密钥和8字节IV值转换为十六进制,并获得32字节密钥和16字节IV。输出文件由:头文件,RSA加密密钥+ IV和原始文件的AES加密数据构成。
另一方面,文件的解密步调如下:
1)下载文件(内存中)。
2)从标题中提取加密密钥。
3)利用您的RSA私钥解密密钥。
4)从标题中提取IV值。
5)利用步调3中的解密密钥和IV值解密文件数据。
留意:
我们同时利用RSA和AES算法:RSA只能加密有限数量的数据,但不能高出其密钥巨细,因此我们可以利用它来加密AES的奥机密钥。然后,对称AES计策用于加密潜在的大量数据,即文件的数据自己。
出于简化原因,也可以单独利用AES。可是,包括RSA的长处是我们可觉得最终用户生成很多RSA解密密钥(=私钥),而只有一个加密密钥(=公钥);而不是与所有用户共享一个密钥。
我们为什么要选择IPFS?
在可用性和机能方面,IPFS优于bittorrent。由于内容寻址,IPFS可以防备文件反复。V丨ipfssy
1)单个文件可以很容易地从某个“源”下载。而利用Bittorrent,则必需建设一个“ .torrent”文件,将其提交给跟踪器并举办种子植入。
2)另一方面,IPFS在使文件可共享方面要快得多。IPFS文件可以分发和负载平衡,使其成为完美的CDN办理方案。而利用BitTorrent完全不行能。
3)在IPFS中,文件畅通过HTTP可以直接利用。而BitTorrent中的流媒体是一项付费成果。
4)大文件在IPFS中被分块/分片,因此,人们可以从差异的节点下载块,并最大限度地操作带宽。这在IPFS和BitTorrent中都可以实现。
5)对付实验共享文件的新人来说,BitTorrent的进入门槛很高。而IPFS很轻松集成到拖放界面。
6)利用IPFS,用户可以选择他/她要的“种子”的文件。而BitTorrent要求您在torrent中为所有文件设定种子。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。