在asp.net中使用散列密码创建登录

时间:2014-06-09 08:53:49

标签: c# mysql asp.net codeigniter hash

我有MySQL数据库,其中数据来自codeigniter,因此在用户表中,密码存储在哈希中。我必须使用这个数据库在asp.net中创建一个面板。问题是每当我返回密码时,它都会显示哈希值。如何在登录时验证用户身份?

我尝试了什么

我尝试使用MSDN中给出的方法解密密码。我为此搜索了很多东西。是否可以将哈希转换为字符串?我的一个密码是
7c4a8d09ca3762af61e59520943dc26494f8941b实际上它是123456.我该如何解密?我尝试使用Asp.Net Authentication,但没有成功。我需要解密密码,因为我必须在更改密码表单中使用它。

1 个答案:

答案 0 :(得分:1)

哈希密码无法解密,只能将加密密码解密为正确的值。

解决您的问题:

你需要检查使用哪种技术来哈希密码,同时在数据库中强化它,如MD5或SHA1等。

然后在您的服务器中执行相同的哈希,或者我宁愿选择/建议Javascript (以这种方式,您的密码哈希实际上也会用于增强安全性,您可以添加一个盐键,以便散列密码在旅行时也不对所有人开放)然后将Hashed文本框值与存储的Hashed值匹配。

问题的示例:

String password = "123456";

<强>输出:

Original text   123456
Original bytes  31:32:33:34:35:36 (length=6)
Adler32 042e0136
CRC32   0972d361
Haval   1d8071d4a59f25a2a92a9a4844ba1e05
MD2 d4541250b586296fcce5dea4463ae17f
MD4 585028aa0f794af812ee3be8804eb14a
MD5 e10adc3949ba59abbe56e057f20f883e
RipeMD128   d6d56cab46e0f3af2c756289f2b447e0
RipeMD160   d8913df37b24c97f28f840114d05bd110dbb2e44
SHA-1   7c4a8d09ca3762af61e59520943dc26494f8941b
SHA-256 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
SHA-384 0a989ebc4a77b56a6e2bb7b19d995d185ce44090c13e2984b7ecc6d446d4b61ea9991b76a4c2f04b1b4d244841449454
SHA-512 ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413
Tiger   5b2715f7cb7488ce2deb8544f0aa91b6f0eec76fb3b74265
Whirlpool   f30d7ab2a27f7e64da1a506c4ed99e1d89b3592d98376e3eeb28668552ab72697998f05a16007df8d72eb4f0e1ad2c2b1f47f3e86c4267f64e1314e616e002a1

在这里,您可以看到SHA-1 7c4a8d09ca3762af61e59520943dc26494f8941b是您给定/期望的输出。

<强> Reference for String to Hash

希望它有所帮助。

相关问题