说密码是000000
cmd> openssl passwd -1 000000
$1$noyU0rJi$iZ7EgOhutl2aJItaBcF5v.
cmd> echo -n '000000noyU0rJi' | md5sum #cmd might be incorrect
1be6132fd5be99229741e0b88700fe95 -
md5sum哈希应该有32个字符,但openssl的哈希值只有22个字符(iZ7EgOhutl2aJItaBcF5v)。那是为什么?
编辑:我得到了一些downvote,如果你能解释原因会有所帮助..
答案 0 :(得分:1)
至少部分区别在于openssl工具的输出是与Unix crypt函数[https://en.wikipedia.org/wiki/Crypt_(C)]相关联的base64格式,而md5函数的输出是十六进制的( base16)。
如果仔细观察,可以看到md5sum的输出只有数字0-9和小写字母a-f。 openssl命令的输出有数字,看起来是完整的字母,包括大写和小写字母。
当你更密集地编码信息时(base64),长度自然会更短。