libsodium-使用crypto_box_easy加密文件吗?

时间:2018-08-29 21:17:03

标签: libsodium

我想用libsodium中的公共-私有密钥方法加密一个大文件(100 MB)。对于小邮件,我使用crypto_box_easy(),但不适用于大文件。对文件使用crypto_box_easy()的最佳方法是什么?我不能使用秘密密钥,因为我不能安全地交换密钥,因此需要使发送者和接收者具有公共密钥和私有密钥。

我想到的是将文件分割成小块(每个1 MB),将它们加密并合并成一个大文件,然后再次分割并用crypto_box_open_easy()再次解密每个块。这是有效且最重要的安全方法吗?还是还有其他方法可以使用public-private-keys加密libsodium中的文件?

谢谢!

1 个答案:

答案 0 :(得分:1)

由于amount as NSNumber:似乎仅限于内存中的数据,并且文件太大,因此您需要自己执行混合加密。

这相当于创建一个随机对称密钥,并使用非对称加密对该密钥进行加密。然后使用对称密钥使用crypto_box_easy()加密数据。然后将加密的密钥和加密的数据结合起来。

有关更多详细信息,请参见Hybrid Encryption