Hash 这可以是哪个散列函数?

Hash 这可以是哪个散列函数?,hash,Hash,我有一些字符串和一些散列,但我不知道使用哪个散列函数。有什么想法吗 String hash NN34W f8b46bcdc3b3c92 EM3M3 d8015ca876fd051 HXDKD a740e97464e5dfe AKREJ aa7aa2dadfcbe53 3bNMK 0f11440639191d9 编辑: 谢谢你们的回答,这是一个验证码的杂凑 如果您检查验证码图像的URL,最后是哈希值。这个 在服务器上,HTTP POST中的send

我有一些字符串和一些散列,但我不知道使用哪个散列函数。有什么想法吗

String        hash

NN34W    f8b46bcdc3b3c92
EM3M3    d8015ca876fd051
HXDKD    a740e97464e5dfe
AKREJ    aa7aa2dadfcbe53
3bNMK    0f11440639191d9
编辑:

谢谢你们的回答,这是一个验证码的杂凑

如果您检查验证码图像的URL,最后是哈希值。这个

在服务器上,HTTP POST中的send是sendTEXT:(P92M4)和HASH(72fec89a2e0ade2)以及其他值

我想知道如何完成文本P92M4的散列,并使用散列值控制,这是在服务器上发送的


因为我喜欢为我的学校项目制作自己的验证码系统,所以我首先分析了现状和弱点。

似乎比任何行业哈希都小。。。可能是出于礼节?
更多的信息会有所帮助,什么语言,从哪里获得的?

据我所知,POST请求会将“文本”和“哈希”发送到验证码服务器。然后使用他们用来散列文本的任何散列函数,检查它是否与散列匹配,并决定是否成功。服务器可能会向您发送图像和散列,然后您输入文本

同样地,如果你知道了散列函数,你就完全打破了这个验证码系统:你所需要做的就是使用它们的散列函数对任何字符串进行散列,然后在发送POST请求时,忽略它们发送给你的散列,只向它们发送你的计算文本和散列对。因此,您可以非常轻松地自动成功地通过验证码挑战

为了说明哈希的“反转”有多难,请考虑下面的散列,它们很可能会用到:

  • 将文本分成交替的字母:因此ABCDE变成ACE和BD
  • md5使用盐“fj49w0utw4a”和“r8h3wlsd”将两个半体
    • md5(“fj49w0utw4a”“ACE”)是115c05f0e5300f958ba01caa64b989f
    • md5(“r8h3wlsd”“BD”)是74eecae86ef46382eb95443a1b1fa8f5
  • 取第一个字符串的每3个字符和第二个字符串的每4个字符,并交替使用,直到有15个字符为止
    • 115c05f0e5300f958ba01caa64b989f变为55e09b1ab9
    • 74eecae86ef46382eb95443a1b1fa8f5变为e8425af5
    • “ABCDE”的最终哈希值:5e58e40295ba1fa
你真的不可能对它进行反向工程


更新
请注意,如上所述(并在该站点上实现)的CAPTCHA非常不安全,因为它们只需要已知一个有效的文本/哈希组合

要演示,请使用Firebug或等效工具,并导航到表单的验证码区域。我们将编辑一些隐藏的值

  • https://pokec.azet.sk/sluzby/system/captcha/[somehash]
    https://pokec.azet.sk/sluzby/system/captcha/ee2be1f239e5d17
  • 表单[captcha\u hash]
    值从
    [somehash]
    更改为
    ee2be1f239e5d17
  • 不管图片上怎么说,键入“P22KD”作为验证码

有几种方法可以缓解此漏洞。正如Tangrs所建议的,您可以将散列值存储在会话变量中,以便客户端无法对其进行操作。不那么优雅但也很有效的方法是将提交的验证码存储在数据库中,并且不允许重复验证码,正如在问题中的链接上实现的那样。这很好,直到您开始耗尽未使用的CAPTCHA并最终导致冲突。

我认为哈希函数通常是不可逆的。我可能弄错了,但每个哈希都有一定的长度和模式。有了大量的知识,你可以找出使用了哪个散列并测试它是否有效。我认为你缺少了一个十六进制数字,看起来像60位的输出,它与我知道的任何散列函数都不对应:它不是SHA1、MD5的截断,或者任何标准的SHA-2变体。@Borealid:它们可能在使用salt。您可以深入了解它们如何缓解弱点,例如salt和secrets将哈希存储在会话变量中。实际上,您可以将Captcha的纯文本存储在会话变量中。但是,如果用户打开了多个表单,则可能会出现问题。我已向网站技术联系人发送了一封有关此问题的电子邮件。@Tangrs:有许多方法可以缓解我上面描述的漏洞。令人悲哀的事实是,问题中链接的表单没有使用任何这些,并且允许我发布的恶作剧。@Lasse:谢谢,这是负责任的事情:)我只是不会说这种语言