【发布时间】:2022-06-16 21:49:28
【问题描述】:
我尝试使用 Libsodium 库加密和解密文件,特别是我想使用 ChaCha20-Poly1305 算法。
我在 Libsodium 文档中看到了这段代码:
main(void)
{
unsigned char key[crypto_secretstream_xchacha20poly1305_KEYBYTES];
if (sodium_init() != 0) {
return 1;
}
crypto_secretstream_xchacha20poly1305_keygen(key);
if (encrypt("/tmp/encrypted", "/tmp/original", key) != 0) {
return 1;
}
if (decrypt("/tmp/decrypted", "/tmp/encrypted", key) != 0) {
return 1;
}
return 0;
}
你可以找到加解密函数的主体here。
我有两个问题:
- 为什么函数只需要目标文件、源文件和键?我的意思是为什么函数不请求nonce 和标签以及如何在文件中添加附加数据?
- 如果我手动读取文件的内容并对其进行加密,而不使用 libsodium 提供给我的那些功能,我错了吗?
【问题讨论】:
-
如果我手动读取文件的内容并对其进行加密,我错了 -- 我不知道 libsodium,但如果你建议你编写自己的加密代码, 不。把它留给专注于加密的专家或图书馆。
标签: c++ encryption libsodium