如何在不写入外部文件的情况下将密码存储在 C 程序中以备将来使用?



我目前已经开始编写受密码保护的电子期刊。用户输入一个密码(当他们第一次使用该程序时),然后使用相同的密码来访问记录。

如何在不将密码写入文件的情况下执行此操作?我希望程序每次都使用相同的密码工作。

标准 C 提供的用于存储数据以供将来使用的解决方案是文件。这就是它们存在的原因,没有合理的选择。C 不会阻止程序的任何内部数据从运行到运行。您需要为此使用文件。

没有必要将密码本身存储在文件中。您可以存储密码的哈希值。哈希是一种函数,它将某些输入(如字符串)转换为另一个值,因此很难找出产生特定值的输入。因此,如果有人学习存储的哈希值,他们很难弄清楚密码。

因此,当用户设置新密码时,程序将计算密码的哈希并将哈希存储在文件中。检查密码时,程序将读取用户输入的密码,计算其哈希值,并将该哈希值与文件中存储的哈希值进行比较。

选择、实现和使用哈希函数是一个广泛而复杂的主题。

相关内容

最新更新