Swarm加密存储

在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节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值