什么是FreeBSD MD5,为什么它以非十六进制表示法产生哈希?

Bra*_*don 3 md5 cryptography freebsd hash-function

我正在从Hack This Site做一个黑客挑战,我在其中找到了密码哈希,然后通过暴力破解可能性来破解它.我的哈希破解者(John the Ripper)使用的格式称为"FreeBSD MD5".密码和哈希如下:PW:shadow HASH:$ 1 $ AAODv ... $ gXPqGkIO3Cu6dnclE/sok1

我的问题是,MD5通常只有字符集0123456789abcdef(十六进制)吗?为什么这个哈希突然包含了一堆其他字符?

截图: 在此输入图像描述

Ctx*_*Ctx 5

这是一个盐渍密码哈希:

  • $是字段分隔符
  • 1是型号(MD5)
  • AAODv ...是哈希的(明文)盐
  • gXPqGkIO3Cu6dnclE/sok1是base64中的哈希值

在散列之前将盐与密码连接起来以防止彩虹表:md5(salt +密码))并验证密码,在散列之前必须使用此盐作为前缀.

在base64中表示散列使其比十六进制数字(23对32字节)略短.