今天无意发现在Linux上计算md5哈希值和在MacOS不太一样:
Linux
[[email protected] ~]# echo ‘123456‘ | md5sum
f447b20a7fcbf53a5d5be013ea0b15af -
Mac
[[email protected] Notes]$md5 -s 123456
MD5 ("123456") = e10adc3949ba59abbe56e057f20f883e
仔细折腾一下, 原来是echo输出的字符串会默认添加一个换行符‘\n‘,
所以在Linux上计算纯字符串的hash需要以下方法:
echo -n 可以去掉换行符
[[email protected] ~]# echo -n ‘123456‘ | md5sum
e10adc3949ba59abbe56e057f20f883e -
printf 没有换行符结尾
[[email protected] ~]# printf 123456 | md5sum
e10adc3949ba59abbe56e057f20f883e -
tr可以删掉一个字符,如 tr -d ‘\n‘
[[email protected] ~]# echo ‘123456‘ | tr -d ‘\n‘ | md5sum
e10adc3949ba59abbe56e057f20f883e -
原文地址:http://blog.51cto.com/ciscoexpert/2174133
时间: 2024-11-10 08:21:20