使用sha1pass
创建密码时,令牌中的第一个值为“4”。
例如:
sha1pass test
给我们:
$4$GTdnmykS$25iwV+ruXRwor4pUmKF57uXHj70$
令牌使用$
作为分隔符:25iwV+ruXRwor4pUmKF57uXHj70
是计算的哈希值,GTdnmykS
是生成的盐,因为我没有提供第二个参数,但是4
是什么呢sha1pass
1}}意味着什么?
4实际上是硬编码的,这是print '$4$', $salt, '$', $pass, "\$\n";
的最后一行,它是一个Perl脚本:
{{1}}
为什么该标记的第一个值为'4',它是什么意思?
答案 0 :(得分:8)
这只是一个签名,所以你知道你在看什么是SHA-1密码; $1$
用于MD5,$5$
用于SHA-2-256,$6$
用于SHA-2-512。
答案 1 :(得分:6)
我见过使用的约定,其中$ 1 $表示MD5,$ 4 $表示SHA1。它是硬编码的,因为它只是编码哈希的生成方式以供将来比较。
答案 2 :(得分:3)
这是一个签名告诉你使用了哈希类型,很多明显的。
现在,为什么存在?这是因为它用于unix密码哈希,请检查crypt (Unix):
如果盐以字符串 $ digit $ 开头,则使用Modular Crypt Format。数字表示加密中使用的算法。