取消密码或保留未使用的密码C#

时间:2014-08-29 15:57:39

标签: c# hash cryptography

背景

我正在制作个人密码保险库。我将是唯一一个使用它并维护它的人。我这样做是为了将密码学作为个人项目来实践。

工作原理

我有一个登录页面,链接到"用户"存储我的用户名的数据库中的表以及已加盐和散列的密码。我有一个方法,它将检查我在密码字段中输入的内容与数据库中的哈希/盐渍密码,并且一切正常,以便我可以成功登录。

如果可能,我需要什么帮助

我希望我的应用程序能够登录,并且我列出了我输入密码的所有地方,例如。数据网格中的其他应用程序,网站等。我将点击我想要的那个,点击一个按钮,一个消息框将显示一个未散列的密码版本。从我所读到的,哈希密码是不可动的,所以不知道最好的方法是什么,如果可能的话,除了存储未散列的密码(这会破坏对象!)。

干杯

2 个答案:

答案 0 :(得分:3)

这样做的一种方法是存储纯文本密码并使用您记住的主密码加密文件(或blob)。

只要您需要访问权限,就可以提供此主密码并解密文件以访问密码。

根据您的设计,您可以提示输入一次主密码(比如应用启动)或每次都提示。

并确保您不会在未加密的任何地方编写或保留纯文本密码!

你可以将它们保存在应用程序生命周期的内存中,以使用户体验更容易,以便下次应用程序启动时,重复相同的过程(即询问主密码,取消加密,使用然后退出)。

答案 1 :(得分:3)

哈希的一个核心原则是它已经单向,正如您所读到的那样。由于您希望能够在数据和安全版本之间执行双向转换,因此需要使用加密,这种加密专门用于加密,然后解密相关数据。