我得到了解密密码哈希的任务?

时间:2019-09-19 09:43:20

标签: security sha256 password-hash

我是Security的新手,正在尝试学习如何破解自己用户的数据库。我有用户名,密码哈希和用户名。 SHA-256密码哈希值是由3个字符串(即一个常数字符串potPlantSalt,密码和 盐。 SHA-256输出已转换为十六进制格式并被截断 最多32个字符,然后作为字符串存储到数据库中。

截断(十六进制(SHA256(“ potPlantSalt” +密码+ salt)))

我有类似的数据: 用户名:max 密码哈希:2b1ac087bd54ea9dcbfba2c3e63b2335 盐:5aa8698c4022fe1d

我怎么知道上面的用户解码密码?

1 个答案:

答案 0 :(得分:4)

SHA256是one way function,这意味着在给定SHA256输出的情况下,计算输入非常非常困难且耗时。如此耗时,在当前的硬件上是不切实际的。

因此,您必须使用brute force attack:对数百万个潜在的密码进行哈希处理,直到找到与数据库中存储的哈希值相同的哈希值为止。请注意,该密码不一定是原始密码(hash collision)。

如果我们假设用户未使用随机字符的组合,则可以使用Dictionary attack来减少搜索空间。

您可以通过Rainbow tables使用更多存储空间来减少计算时间。