我正在参加Hack This Site的一个黑客挑战,我找到了一个密码哈希值,并通过暴力破解的方式破解了它。我的哈希破解工具(John the Ripper)使用的格式被称为“FreeBSD MD5”。密码和哈希如下: PW: shadow HASH: $1$AAODv...$gXPqGkIO3Cu6dnclE/sok1我的问题是,MD5通常只有0123456789abcdef(十六进制)字符集,为什么这个哈希值突然包含了一堆其他字符?截图:
这是一个加盐密码哈希: $ 是字段分隔符 1 是类型(MD5) AAODv... 是哈希的(明文)盐 gXPqGkIO3Cu6dnclE/sok1 是以base64编码的哈希值 在哈希之前,将盐与密码连接起来以防止彩虹表攻击:md5(salt + password)),要验证密码,必须在哈希之前添加此盐前缀。使用base64表示哈希使它比十六进制数字更短一些(23比32字节)。
/etc/shadow
这样的文本文件中,使用更少的字符可以占用更少的空间。 - Ctx