【问题标题】:C++, Libsodium, how encrypt and decrypt correctly a fileC++,Libsodium,如何正确加密和解​​密文件
【发布时间】: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

我有两个问题:

  1. 为什么函数只需要目标文件源文件?我的意思是为什么函数不请求nonce 和标签以及如何在文件中添加附加数据
  2. 如果我手动读取文件的内容并对其进行加密,而不使用 libsodium 提供给我的那些功能,我错了吗?

【问题讨论】:

  • 如果我手动读取文件的内容并对其进行加密,我错了 -- 我不知道 libsodium,但如果你建议你编写自己的加密代码, 不。把它留给专注于加密的专家或图书馆。

标签: c++ encryption libsodium


猜你喜欢
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2020-12-22
  • 2012-02-04
  • 2013-11-19
  • 2012-11-18
  • 2022-04-07
相关资源
最近更新 更多