Passwords 在sha1pass的输出中,4美元意味着什么?

Passwords 在sha1pass的输出中,4美元意味着什么?,passwords,sha1,Passwords,Sha1,使用sha1pass创建密码时,令牌中的第一个值为“4” 例如: sha1pass test 给了我们: $4$GTdnmykS$25iwV+ruXRwor4pUmKF57uXHj70$ 令牌使用$作为分隔符:25iwV+ruXRwor4pUmKF57uXHj70是计算的哈希,GTdnmykS是生成的salt,因为我没有提供第二个参数,但这4意味着什么 4实际上是硬编码的,这是sha1pass的最后一行,这是一个Perl脚本: print '$4$', $salt, '$', $pass,

使用
sha1pass
创建密码时,令牌中的第一个值为“4”

例如:

sha1pass test
给了我们:

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

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

print '$4$', $salt, '$', $pass, "\$\n";

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

我见过使用的惯例,其中$1$表示MD5,$4$表示SHA1。它是硬编码的,因为它只是对哈希值的生成方式进行编码,以便将来进行比较。

它只是一个签名,所以您知道您看到的是一个SHA-1密码
$1$
用于MD5,
$5$
用于SHA-2-256,
$6$
用于SHA-2-512。

这是一个签名,告诉您使用的是哈希类型,这一点很明显

现在,为什么存在?这是因为它用于unix密码哈希,请检查:

如果salt以字符串$digit$开头,则使用模块化加密格式。数字表示加密中使用的算法