C# 导出到数据库之前对密码进行salt和hash处理
我已经创建了一个登录系统,并且被告知要对我的密码进行散列和加密。现在,我查看了google、msdn,发现了很多关于哈希和盐析的东西,但似乎不知道怎么做?我想我得到了这个过程: 您获取用户创建的密码并将其散列 这会写入数据库,但同时 您获取散列,并使用security.cryptography中的RGN对其进行加密,然后将加密添加到数据库中C# 导出到数据库之前对密码进行salt和hash处理,c#,database,winforms,hash,C#,Database,Winforms,Hash,我已经创建了一个登录系统,并且被告知要对我的密码进行散列和加密。现在,我查看了google、msdn,发现了很多关于哈希和盐析的东西,但似乎不知道怎么做?我想我得到了这个过程: 您获取用户创建的密码并将其散列 这会写入数据库,但同时 您获取散列,并使用security.cryptography中的RGN对其进行加密,然后将加密添加到数据库中 然后,要撤销密码,只需重复该过程,对吗?当您第一次存储密码时,它是这样的: 制造盐 将其连接到密码的末尾 将密码+盐散列 为用户存储哈希字符串和salt 然
然后,要撤销密码,只需重复该过程,对吗?当您第一次存储密码时,它是这样的:
它是这样的,当您第一次存储密码时:
我在这里的另一篇文章中用例子解释了整个过程:
我在这里的另一篇文章中用例子解释了整个过程:
你不应该撤销散列,它是一个单向函数……你有没有检查过或其他类似的问题啊,我的错,我以为这只是一个反向重复过程的例子。我到处都找过了,如果我非常诚实,那条线索对我来说毫无意义:(你不应该撤销散列,它是一个单向函数……你有没有检查过或其他类似的问题啊,我的错,我以为这只是一个反向重复过程的例子。我到处都找过,如果我非常诚实的话,那条线索对我来说毫无意义:(哇,这似乎太多了。但是我怎么才能得到用户的salt呢?不是每个用户的salt都不同吗?@tonyb-当你第一次创建一个用户时,你就生成了一个salt(基本上是一个随机字符字符串),并将其与用户的其余数据以及散列密码+salt一起存储在数据库中。因此,在数据库中,我会有用户名、用户类型、salt和散列密码?在程序中,当用户注册时,我会创建一个salt,将其添加到数据库中,然后将其附加到密码中,散列并将其添加到数据库中?@tonyb you应该生成一个新的salt,并在设置新密码时将其与哈希一起存储,而不仅仅是在初始用户注册时哇,这似乎太多了。但是我如何获得用户salt?不是每个用户salt都不同吗?@tonyb-当您第一次创建用户时,您生成了salt(基本上是一个随机字符字符串),并将其与用户的其余数据以及散列密码+salt一起存储在数据库中。因此,在数据库中,我会有用户名、用户类型、salt和散列密码?在程序中,当用户注册时,我会创建一个salt,将其添加到数据库中,然后将其附加到密码中,散列并将其添加到数据库中?@tonyb you应该生成一个新的salt,并在设置新密码时将其与哈希一起存储,而不仅仅是在初始用户注册时