C++ 在河豚肉里找到盐
这是一个非常基本的问题。我一直在寻求帮助,但找不到任何具体的答案。因此,我在这里特别提出这个问题 用例是,我想找到弱密码,它引用可用的哈希列表。为此,我必须将每个已知/常用单词的哈希值与可用哈希值进行比较。所有这一切都是用C++在UNIX中使用OpenSSL/BooFiver完成的。 但是,要创建此猜测词的哈希,需要使用与密码哈希相同的salt生成 我这里的问题是如何从密码散列中提取salt。 假设以下是我的哈希: $2a$10$FTx8T5QrEbxYVe.NJ6iOhuei.V9qgl60xF8/8s7izrdiol.ibDEW 这里面的盐是什么?或者我怎样才能达到目标?任何指针都会很棒C++ 在河豚肉里找到盐,c++,blowfish,crypt,C++,Blowfish,Crypt,这是一个非常基本的问题。我一直在寻求帮助,但找不到任何具体的答案。因此,我在这里特别提出这个问题 用例是,我想找到弱密码,它引用可用的哈希列表。为此,我必须将每个已知/常用单词的哈希值与可用哈希值进行比较。所有这一切都是用C++在UNIX中使用OpenSSL/BooFiver完成的。 但是,要创建此猜测词的哈希,需要使用与密码哈希相同的salt生成 我这里的问题是如何从密码散列中提取salt。 假设以下是我的哈希: $2a$10$FTx8T5QrEbxYVe.NJ6iOhuei.V9qgl60x
提前谢谢。这不是重点吗?你不知道那是什么?所以没人能来做你现在想做的事 我对salt的理解是:
- 您有一个字符串,我们称它为
李>密码
- 还有一个算法,它接受一个字符串并从中产生一个散列。我们把它叫做河豚
- 这是对的吗?河豚是散列算法吗?我不这么认为李>
- 让我们调用我们的算法
md5
将为md5
生成一个哈希值,但它始终会生成相同的哈希值password
- 你有个坏人。我们叫他
Mrun
通过使用字典中的一组已知密码测试Mrun
来尝试找出md5
密码
- 通过不仅仅使用
,而是使用password
,将生成不同的散列并阻止password+salt
Mrun
如果您需要查找salt,则必须至少有一个已知的密码和哈希组合。然后你可以试着用蛮力找出盐。祝你好运哦,我希望你不是在这里作恶。哦,我希望其他的邪恶生物也不知道…只要把密码散列作为盐传递就行了——它足够聪明,可以提取自己。这是
crypt()
请参阅现代Unix和“BSD风格”哈希下的
注意:crypt()
的salt
参数不是salt。它是$algorithm$salt$MORESALTsomething
,所以你不应该自己提取盐出于历史(DES时代)原因,它被称为盐
另请参见密码散列函数的“salt”与密码串联,然后对结果字符串进行散列。要取回盐,这意味着您需要取回散列的字符串。显然,这有两个主要问题:
杰夫·阿特伍德(Jeff Atwood)关于salt、hashing和rainbow表的精彩文章您在这里有一些误解——如果您无法获得salt,如何验证密码是否正确?salt用于防止预编译表,但不是即时表。这也是你不应该重复使用salt的原因。我想你误解了我-如果你找到了salt(通过猜测,对密码应用哈希算法,并使用已知哈希进行猜测和检查),那么你可以使用salt重新编译你的表并破解其余密码。我同意J-16。在适当的设置中,每个用户都有自己的盐值。没有盐这种东西。即,密码表将有三列:
User、Salt、Hash
。是。我已经看到了第二个链接。仅基于此,我做出了一些假设,但这些假设实际上并不适用于我,也不会产生意想不到的结果。我无法理解我应该如何在我的用例中使用blowfish API。我可以使用blowfish API实现同样的效果吗?我不这么认为——密码哈希中使用的blowfish是一个修改过的。