当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在解密数据之前检查密码》经验,为你挑选了1个好方法。

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

现在,我想在进行解密之前检查用户是否输入了正确的密码.这种检查需要很快,而解密过程则不然.

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

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



1> Marc Gravell..:

好吧,加密哈希不应该损害安全性,只要它是咸的并且具有合理的复杂性; 但就个人而言,我可能会尝试设置它,以便数据损坏(由于密码不正确)很明显...

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

(编辑)此外 - 强制它解密一个非平凡的数据块(但不是整个流),然后才能判断密码是否正确应足以使其难以暴力破解.如果它只需要处理前128个字节(或其他),可能足够快,使其值得尝试(字典等).但对于常规使用(一次尝试,密码是对还是错),它应该没有性能影响.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有