Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Bcrypt哈希密码检索文本_C#_Security_Encryption_Bcrypt - Fatal编程技术网

C# 从Bcrypt哈希密码检索文本

C# 从Bcrypt哈希密码检索文本,c#,security,encryption,bcrypt,C#,Security,Encryption,Bcrypt,使用BCrypt技术将密码作为哈希存储到数据库中。虽然与MD5、SHA-1等快速散列算法相比,它可能有点慢,但我们决定继续,因为安全性更重要 在.Net中,我使用 在我们的网站中,管理员将为新用户创建用户名和密码 存储散列密码没有问题。但是如果管理员想更新密码,他需要查看旧密码。我没有看到任何方法对Bcrypt.Net中存储在DB中的散列值进行谴责 有没有办法从Bcrypt哈希密码生成文本?然而,我同意这是不可能的,但我们有一些场景是为了做到这一点: 更新:我决定使用默认密码,该密码以明文形式存

使用BCrypt技术将密码作为哈希存储到数据库中。虽然与MD5、SHA-1等快速散列算法相比,它可能有点慢,但我们决定继续,因为安全性更重要

在.Net中,我使用

在我们的网站中,管理员将为新用户创建用户名和密码

存储散列密码没有问题。但是如果管理员想更新密码,他需要查看旧密码。我没有看到任何方法对Bcrypt.Net中存储在DB中的散列值进行谴责

有没有办法从Bcrypt哈希密码生成文本?然而,我同意这是不可能的,但我们有一些场景是为了做到这一点:


更新:我决定使用默认密码,该密码以明文形式存储在某个表中,并对该文本进行散列,然后存储为用户的密码。当用户登录到该站点时,他将被迫更改密码,直到重置为止。这听起来好吗?

加密散列从设计上讲是一种单向函数。哈希函数的目的正是不可能反转。此外,多个输入可以散列到同一输出


需要访问旧密码才能设置新密码表明设计存在缺陷。确切地说,为什么您需要访问明文形式的旧密码才能更新密码?

加密哈希是一种单向函数。哈希函数的目的正是不可能反转。此外,多个输入可以散列到同一输出


需要访问旧密码才能设置新密码表明设计存在缺陷。确切地说,为什么您需要以明文形式访问旧密码才能更新密码?

请先搜索。这一点以前已经被问过/猜测过并回答过多次,如果您需要旧密码,请执行以下三项操作之一:存储原始的非散列字符串,将其写在便笺上,或者我最喜欢的操作:更改您的设计,使您不需要它。@pst我更新了我的问题不要求除该密码的创建者之外的任何人都知道旧密码。除非你符合这一点,否则我认为你没有一个好的设计。请先搜索。这一点以前已经被问过/猜测过并回答过多次,如果您需要旧密码,请执行以下三项操作之一:存储原始的非散列字符串,将其写在便笺上,或者我最喜欢的操作:更改您的设计,使您不需要它。@pst我更新了我的问题不要求除该密码的创建者之外的任何人都知道旧密码。在你遵守这一点之前,我认为你没有一个好的设计。
BCrypt.Net.BCrypt.HashPassword("Password", BCrypt.Net.BCrypt.GenerateSalt(12));