Security 加密方法的解密方法
我找到了一种简单的加密方法来加密密码。(我想是的)。我想在我的申请中采用这种方法。但是我正在努力开发一种解密方法,以获得用这种加密方法加密的实际字符串。有谁能告诉我这种加密方法的解密方法吗?提前谢谢Security 加密方法的解密方法,security,encryption,Security,Encryption,我找到了一种简单的加密方法来加密密码。(我想是的)。我想在我的申请中采用这种方法。但是我正在努力开发一种解密方法,以获得用这种加密方法加密的实际字符串。有谁能告诉我这种加密方法的解密方法吗?提前谢谢 public static string Encode(string value) { var hash = System.Security.Cryptography.SHA1.Create(); var encoder = new System.Text.A
public static string Encode(string value)
{
var hash = System.Security.Cryptography.SHA1.Create();
var encoder = new System.Text.ASCIIEncoding();
var combined = encoder.GetBytes(value ?? "");
return BitConverter.ToString(hash.ComputeHash(combined)).ToLower().Replace("-", "");
}
如果我没有弄错的话,这个方法就是使用SHA1标准对密码进行散列 哈希是一种特殊类型的单向加密。也就是说 我假设您想要解密它,以便根据登录表单检查某人的密码。处理的方法是存储加密的密码;然后,当有人填写您的表单时,使用相同的加密方法加密他们的输入,并查看两个加密字符串是否匹配
另一方面,如果你是散列,请不要忘记给你的散列加盐。这将要求您将散列和盐存储在数据库中;在检查密码时,只需检索与输入的用户名关联的salt,将其添加到表单输入的密码中,对其进行散列,并根据存储的salt密码检查新的散列。如果他们匹配,宾果!如果不是,则是错误的密码
更多 看看类似问题的其他答案,为了完整起见,让我补充一下 这个问题的简短答案是否定的。这些散列算法被设计为“不可破解”。然而,这并不意味着它们不能被打破。打破SHA1或任何其他基于模的哈希算法的方法是“猜测并检查”。基本上:
password ---SHA1---> sha1$asdfasdfasdfasdf
password ---SHA1---> sha1$asdfasdfasdfasdf
password ---SHA1---> sha1$asdfasdfasdfasdf
因此,如果有人访问了您的数据库,他们可以查找重复的密码并对照它们检查常用密码,直到他们意识到sha1$asdfasdfasdfasdf
实际上意味着“密码”
但通过向等式中添加盐,每个用户实际上都在输入不同的密码
salt1password ---SHA1---> sha1$aogiahowehgpa
salt2password ---SHA1---> sha1$oh9h42h980agh
salt3password ---SHA1---> sha1$322tyyha0gh9w
这使得你的系统几乎不可能被破解。如果有人访问了您的数据库,则不会有重复项需要检查
所以一定要给你的大麻加盐@卡拉根:谢谢你,我试试:)@David,谢谢你提供的宝贵信息!是的,当有人在记录时,我就是这么做的。但是,当方便编辑密码时,问题就来了。我必须解密加密值并向用户显示实际密码。你能为我提供一个链接或资源的那种吗scenario@Isuru除非您存储未加密的密码,否则这是不可能的。这就是为什么大型网站从不向你显示密码的原因。这是不安全的。尝试在谷歌、Stack Exchange、Facebook等网站上更改密码。他们会允许您更改密码,但他们永远不会向您透露密码内容。它们甚至可能存储旧的散列密码,以确保您不会重复使用旧密码。散列不是一种特殊类型的加密,因为根据定义,加密是双向的。@ArtjomB。现在你只是在把单词拆开。托马托托马托。就为了这个,我的答案真的值得否决吗?可能是重复的