C#安全的方式来存储一个数字?

我已经为Windows 7构build了自己的locking屏幕。因此,它使用密码来解锁自己。 所以我决定只存储密码string的哈希码(例如,我调用string“Password123”的GetHashCode方法)。 现在我有存储号码的任务。 我将如何以最安全的方式来做到这一点? 或者是使用密码string的哈希码甚至是最好的方式呢? 我的目标是阻止某人获得这个号码,并最终阻止某人发现密码。

以下是我迄今为止提出的一些可能的方法:

  1. 将密码的哈希码存储在主程序旁边的未encryption的纯文本文件中。
  2. 将密码的哈希码存储在主程序旁边的encryption文本文件中(这引入了存储和获取合适的encryption密钥的问题)
  3. 将密码的哈希码存储在一个小的编译C#库中。
  4. 按照上述步骤进行操作,但是要encryption生成的程序集 然后,加载它,只需将所有字节读入内存,解密,然后使用Assembly.Load加载原始字节数组。

现在有没有更好的(更安全)的方法来防止某人发现我试图存储在硬盘上的哈希码?

编辑:根据下面的评论,我正在修补程序使用哈希algorithm来获得我的密码的哈希码。 现在的问题是“我将如何在硬盘上安全地存储字节数组?上述所有选项仍然适用。

感谢您的帮助提前。