netbsd - sha1 的奇怪散列格式
netbsd - weird hash format for sha1
在我的 NetBSD 系统上,master.passwd 中有一个密码散列,如下所示:
$sha1$[5 numbers]$[8 letters]$[17 alpha numeric].[10 alpha numeric]
出于隐私考虑,我省略了实际值。有人愿意解释其中的不同部分吗?我的印象是 SHA1 产生 20 个字节,所以我很困惑什么部分是实际哈希,什么部分是盐,还有什么部分是其他所有内容。
相关部分可以在NetBSD中找到src/lib/libcrypt
。
对于格式:crypt-sha1.c
The format of the encrypted password is:
$<tag>$<iterations>$<salt>$<digest>
where:
<tag> is "sha1"
<iterations> is an unsigned int identifying how many rounds
have been applied to <digest>. The number
should vary slightly for each password to make
it harder to generate a dictionary of
pre-computed hashes. See crypt_sha1_iterations.
<salt> up to 64 bytes of random data, 8 bytes is
currently considered more than enough.
<digest> the hashed password.
摘要为 160 位 = 20 字节,但使用 base64(4 字节用于 3 个源字节)编码为 28 字节(1 个零填充字节)。请参阅 util.c。
在我的 NetBSD 系统上,master.passwd 中有一个密码散列,如下所示:
$sha1$[5 numbers]$[8 letters]$[17 alpha numeric].[10 alpha numeric]
出于隐私考虑,我省略了实际值。有人愿意解释其中的不同部分吗?我的印象是 SHA1 产生 20 个字节,所以我很困惑什么部分是实际哈希,什么部分是盐,还有什么部分是其他所有内容。
相关部分可以在NetBSD中找到src/lib/libcrypt
。
对于格式:crypt-sha1.c
The format of the encrypted password is:
$<tag>$<iterations>$<salt>$<digest>
where:
<tag> is "sha1"
<iterations> is an unsigned int identifying how many rounds
have been applied to <digest>. The number
should vary slightly for each password to make
it harder to generate a dictionary of
pre-computed hashes. See crypt_sha1_iterations.
<salt> up to 64 bytes of random data, 8 bytes is
currently considered more than enough.
<digest> the hashed password.
摘要为 160 位 = 20 字节,但使用 base64(4 字节用于 3 个源字节)编码为 28 字节(1 个零填充字节)。请参阅 util.c。