shell 下计算 md5 一般使用 md5sum 命令,这个命令默认是读取文件的,但是也可以从管道读入内容。从管道读入标准输入内容的时候要避免使用 echo 例如

key=123456
echo $key|md5sum|awk '{print $1}'

这样的结果是和其他语言对不上的,上面的结果是 f447b20a7fcbf53a5d5be013ea0b15af 网页计算结果是 e10adc3949ba59abbe56e057f20f883e

原因就是 echo 命令会在输出内容后面添加换行符。导致两边输入的数据不一致,结果自然也就对不上

解决方案就是 使用 printf 命令替代

key=123456
printf $key|md5sum|awk '{print $1}'