我有MySQL
数据库,其中数据来自codeigniter
,因此在用户表中,密码存储在哈希中。我必须使用这个数据库在asp.net中创建一个面板。问题是每当我返回密码时,它都会显示哈希值。如何在登录时验证用户身份?
我尝试使用MSDN中给出的方法解密密码。我为此搜索了很多东西。是否可以将哈希转换为字符串?我的一个密码是
7c4a8d09ca3762af61e59520943dc26494f8941b
实际上它是123456.我该如何解密?我尝试使用Asp.Net Authentication,但没有成功。我需要解密密码,因为我必须在更改密码表单中使用它。
答案 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 强>
希望它有所帮助。