shell 下计算 md5 和其他语言结果对不上 需要注意换行符
shell 下计算 md5 一般使用 md5sum 命令,这个命令默认是读取文件的,但是也可以从管道读入内容。从管道读入标准输入内容的时候要避免使用 echo 例如
key=123456
echo $key|md5sum|awk '{print $1}'
这样的结果是和其他语言对不上的,上面的结果是 f447b20a7fcbf53a5d5be013ea0b15af
网页计算结果是 e10adc3949ba59abbe56e057f20f883e
原因就是 echo 命令会在输出内容后面添加换行符。导致两边输入的数据不一致,结果自然也就对不上
解决方案就是 使用 printf 命令替代
key=123456
printf $key|md5sum|awk '{print $1}'