IPFS文件如何加密与解密?

IPFS是星际文件系统,它用于在分布式文件系统中存储和共享数据的协议和对等网络。IPFS使用内容寻址,来唯一标识连接所有计算设备的每个文件。

最近,NodeJS中的IPFS文件加密示例项目,实现了加密、解密文件,并将其存储在IPFS网络上。这是托管和保护任何敏感数据的理想解决方案。

今天,我们看一下,如何在将文件上传到IPFS之前对其进行加密。同样,它可以解密和下载这些文件。该解决方案同时使用RSA和AES加密算法来实现最大的安全性。

IPFS文件如何加密与解密?

首先,安装:

1)下载并安装IPFS CL

2)初始化IPFS: ipfs init

3)启动IPFS: ipfs daemon

4)在另一个提示下运行以下命令:

git clone github.com/healzer/ipfs-file-encryption.git

cd ipfs-file-encryption

npm install

node index.js

其次,我们可以使用提供的_testing()功能来测试和验证以下功能:

IPFS文件如何加密与解密?

最后,配置:

您可能要index.js根据您的环境更改这些变量:

ipfsEndPoint (default: '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?

在可用性和性能方面,IPFS优于bittorrent。由于内容寻址,IPFS可以防止文件重复。

1)单个文件可以很容易地从某个“源”下载。而使用Bittorrent,则必须创建一个“ .torrent”文件,将其提交给跟踪器并进行种子植入。

2)另一方面,IPFS在使文件可共享方面要快得多。IPFS文件可以分发和负载均衡,使其成为完美的CDN解决方案。而使用BitTorrent完全不可能。

3)在IPFS中,文件流通过HTTP可以直接使用。而BitTorrent中的流媒体是一项付费功能。

4)大文件在IPFS中被分块/分片,因此,人们可以从不同的节点下载块,并最大限度地利用带宽。这在IPFS和BitTorrent中都可以实现。

5)对于尝试共享文件的新人来说,BitTorrent的进入门槛很高。而IPFS很轻松集成到拖放界面。

6)使用IPFS,用户可以选择他/她要的“种子”的文件。而BitTorrent要求您在torrent中为所有文件设定种子。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/eb9d45e5467f2d197cc21c422dea16ea.html