2011-07-14 140 views
0

我遇到了一个问题,当将密码插入数据库时​​,我正在使用哈希算法,密码已清除,哈希密码本身加上盐,但我可以'弄清楚它们之间发生了什么(PHP开发人员,而不是.NET)。ASP密码哈希算法

如果任何人都可以帮我解决什么类型的散列已被使用,这将是王牌。

  • 的散列的口令:a77U3b3ovil @慈
  • 盐:394279838
  • 哈希密码:F80ADFC2175F9DB94745E6A9B8CFA575D5B94263C523F9249620BEC958026DB4

它被插入通过一个ASP MSSQL数据库。

+1

如果你有这么多的访问权限,你不能访问asp文件来查找正在执行的代码吗? – Treborbob

+0

不,这是一个封闭的系统,它需要很长时间才能访问这么多的数据库,他们只打算让我们访问数据库。 –

+0

它可能是SHA256的约1000倍应用,由盐串联组成......如何找出答案?也许尝试一些标准的bcrypt例程。 –

回答

1

你的结果有64个十六进制字符,所以64×4位=总共256位。 这意味着它是一个SHA-256的任何

SHA1的输出,default hashing algorithm of ASP.NET有160位= 40个字符,所以这似乎与您所拥有的数据不符。

在另一方面,有可能是在代码(see)申请盐:

computeHash(user.salt + "98hloj5674" + password) 

,如果你不知道一个,有没有机会找到答案。你能猜到吗?你需要一个dictionary attack(尝试所有的可能性),使用哈希值就是这需要你几年(对于SHA-256)或几个小时(对于MD5)。

我试过了很明显的选项(比如sha256(Pass & Salt)),但没有一个工作。如果不能访问代码,恐怕没有明显的答案。