gpt4 book ai didi

c - 使用 libgcrypt 从密码加密文件

转载 作者:太空狗 更新时间:2023-10-29 16:08:15 38 4
gpt4 key购买 nike

我正在开发对文件进行 aes256-cbc 加密的简单软件。我正在使用 GNU/Linux 和 libgcrypt-1.5.0。 IV 是使用 OpenSSL rand 函数随机生成的,IV 存储在输出文件中的密文之前。我正在使用 PKCS#7 填充方法。

现在我对如何进行有疑问:

  1. 是用sha256重复输入密码5万次加密文件好,还是用用户给的密码好?

  2. 如果我想检查输入密码的正确性,我必须将它存储到加密文件中(显然是加密的)。这样做是否正确?

最佳答案

  1. 按照 indiv 的建议使用 PBKDF2 派生 key 。
  2. 使用具有不同盐的 PBKDF2 来派生身份验证 key 并将 MAC 附加到您的加密数据(加密后比加密前更安全)。验证MAC以检查密码是否正确,数据是否被篡改。如果您在选择 MAC 时不确定,请将 HMAC 与 SHA-512 结合使用(假设您根据问题使用 AES-256)。

您可以使用一次 PBKDF2 调用来同时生成加密和身份验证 key ,而不是使用不同的填充两次 PBKDF2,方法是在一口气。

请注意,根据填充来确定 key 是否正确可能会导致 CBC 填充 oracle 攻击。对于文件加密,此类攻击可能不适用,具体取决于具体情况,但无论如何使用适当的 MAC 进行数据身份验证似乎是谨慎的做法,因为您还希望防止位翻转攻击和其他对数据的恶意修改。

关于c - 使用 libgcrypt 从密码加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548748/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com