sha1pass的输出中$ 4 $意味着什么?

pol*_*mon 3 passwords sha1

使用sha1pass令牌创建密码时,令牌的第一个值为"4".

例如:

sha1pass test
Run Code Online (Sandbox Code Playgroud)

给我们:

$4$GTdnmykS$25iwV+ruXRwor4pUmKF57uXHj70$
Run Code Online (Sandbox Code Playgroud)

令牌$用作分隔符:25iwV+ruXRwor4pUmKF57uXHj70是计算的哈希,GTdnmykS是生成的盐,因为我没有提供第二个参数,但这4意味着什么?

4实际上是硬编码的,这是sha1passPerl脚本的最后一行:

print '$4$', $salt, '$', $pass, "\$\n";
Run Code Online (Sandbox Code Playgroud)

为什么该标记的第一个值为'4',它是什么意思?

Woo*_*ble 8

它只是一个签名,所以你知道你在看什么是SHA-1密码; $1$用于MD5,$5$SHA-2-256和$6$SHA-2-512.


Jef*_*den 6

我见过使用的约定,其中$ 1 $表示MD5,$ 4 $表示SHA1.它是硬编码的,因为它只是编码如何生成哈希以供将来比较.