gpt4 book ai didi

c# - 如何在解密数据之前检查密码

转载 作者:行者123 更新时间:2023-11-30 19:52:08 24 4
gpt4 key购买 nike

我正在创建一个需要以加密形式存储用户数据的程序。用户在加密之前输入密码,并且需要再次提供密码以检索数据。如果数据量很大,解密需要一段时间。

现在,我想在解密之前检查用户是否输入了正确的密码。这个检查需要很快,而解密过程不是。

如何在实际完成解密过程之前检查密码?我考虑过将密码的哈希值存储为加密文件的前几个字节 - 这会很容易且足够快 - 但我不确定它是否会危及安全性?

我正在使用 .NET 和内置的加密类。

最佳答案

嗯,加密散列不应该危及安全性,只要它是加盐的并且具有合理的复杂性;不过,就个人而言,我可能会尝试对其进行设置,以便尽早发现数据损坏(由于密码不正确)......

是否有可能定期在数据中注入(inject)校验和?或者,如果流表示记录,您能否使用迭代器(IEnumerable<T> 等)读取它,以便它延迟读取并提前中断?

(edit) 此外 - 强制它在判断密码是否正确之前解密一个重要的数据 block (但不是整个流)应该足以让它难以蛮力。如果它只需要处理前 128 个字节(或其他任何字节),那么它可能足够快以使其值得尝试(字典等)。但对于常规使用(一次尝试,密码正确或错误),它应该不会影响性能。

关于c# - 如何在解密数据之前检查密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/432753/

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