为什么从 "openssl passwd -1" 生成的密码长度与 md5sum 不同?

Why does password generated from "openssl passwd -1" has different length than md5sum?

说密码是000000

cmd> openssl passwd -1 000000
$noyU0rJi$iZ7EgOhutl2aJItaBcF5v.

cmd> echo -n '000000noyU0rJi' | md5sum    #cmd might be incorrect
1be6132fd5be99229741e0b88700fe95  -

md5sum 散列应该有 32 个字符,但是来自 openssl 的散列只有 22 个字符 (iZ7EgOhutl2aJItaBcF5v)。这是为什么?

编辑:我得到了一些反对票,如果你能解释原因会很有帮助..

您看到的至少部分差异是 openssl 工具的输出是与 Unix crypt 函数相关联的 base64 格式 [https://en.wikipedia.org/wiki/Crypt_(C) ],而 md5 函数的输出是十六进制 (base16).

仔细看,md5sum的输出结果只有数字0-9和小写字母a-f。 openssl 命令的输出包含数字和看起来是完整的字母表,包括大小写字母。

当你对信息进行更密集的编码(base64)时,长度自然会更短。