我是asp.net mvc语言的新手。我在using System.Security.Cryptography;
中搜索的代码是Google
代码,用于生成salt + hash
个密码。
我的问题是可以使用c#解码吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
你这样说是对的。
简短的回答是否定的。 Hashing提供了一个用于模糊数据的单向接口,其中加密为加密数据的加密/解密提供了双向接口。
哈希不能被“解密”并且我松散地使用该术语的唯一方法是通过哈希方法强制执行。这是通过使用相同的散列方法运行一堆密码和salt组合来完成的,直到找到原始散列的匹配。然而,使用强大的散列方法和密码+盐,这可能成为一项几乎不可能完成的任务。
有用的讨论:Fundamental difference between Hashing and Encryption algorithms
编辑:
您提供的在线密码学家的链接使用所谓的对称密钥算法。这意味着单个密钥用于加密和解密数据。
答案 2 :(得分:0)
没有。不容易。
Hash会接受一些文本并生成一个数字(通常)
例如,md5哈希
password => 5f4dcc3b5aa765d61d8327deb882cf99
根据哈希的性质,没有简单的方法可以从数字回到原始文本"密码"
但是,对于半聪明的黑客,你可以使用所有单词的字典生成哈希,并在合理的时间内破解大多数哈希密码,因为人们使用单词和符号的常见组合。因此,如果您碰巧得到一个散列密码列表,您可以对它们进行字典攻击。使用"密码"的任何人因为他们的密码最终会有相同的哈希值。
作为对此的辩护,如果您为每个用户添加一些独特的文字,例如Salt,您的用户名,现在您已经变得更难了: -
你的字符串哈希变为" Yukkipassword
"哈希值为52fbd06f5b93a51b3f3cd9e807a9f61c
现在每个人都使用"密码"对于他们的密码也会有不同的哈希值,字典攻击密码变得非常困难