欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swarm加密存储

程序员文章站 2024-03-12 11:08:38
...

在Swarm中,所有的数据都是公开的。如果需要保护特定的敏感内容,可以使用加密存储,这样只有授权的用户解密后可以查看这些内容。

Bee客户端提供了在上传时对文件和目录进行加密的简单方法,只有能够访问相应的解***的用户可以读取加密后的数据。

加密上传文件

如果需要对文件加密,只要在上传的时候设置HTTP头部参数Swarm-Encrypt: true就可以了。

curl -F file=@bee.jpg -H "Swarm-Encrypt: true" http://localhost:1633/bzz

上传成功后,Bee会返回一个64字节的文件引用hash,而不是正常的32字节文件引用hash。

{"reference":"f7b1a45b70ee91d3dbfd98a2a692387f24db7279a9c96c447409e9205cf265baef29bf6aa294264762e33f6a18318562c86383dd8bfea2cec14fae08a8039bf3"}

上边的例子可以看到,使用Bee节点的加密方法返回的资源hash是一个128位的16进制字符串。其中前边64位是我们熟悉的Swarm资源hash地址,通过这个地址可以获取对应的资源数据。这一点跟不加密上传文件时一样的。

128位hash的后边64位是解密用的**,用来解密和查看原始的资源数据。这部分属于敏感数据需要单独保存。同时,不要通过公共网关发送**数据,避免网关本身通过**解密你的私有数据。如果你的bee节点在本地主机运行,你可以安全地把BEE api绑定到localhost。这样你的数据就会很安全,因为这些关键的**数据不会暴漏到网络中。

注意:为了保证数据的安全性,加密功能在所有的Swarm网关上都是关闭的。要使用加密功能,请在自己的电脑上安装Bee。

下载和解密文件

要从Swarm提前加密文件,直接使用64字节的资源hash字符串就可以了。Bee客户端会负责下载对应数据块、解密和还原原始数据格式。

curl -OJ http://localhost:1633/bzz/f7b1a45b70ee91d3dbfd98a2a692387f24db7279a9c96c447409e9205cf265baef29bf6aa294264762e33f6a18318562c86383dd8bfea2cec14fae08a8039bf3

再次提醒:不要在公共网关中使用64字节的加密hash请求数据,因为里边直接包含了**信息。要使用加密功能,请运行自己的Bee节点。