之前项目上需要计算一段字符串产生MD5、再经过base64计算、再把计算结果中的“+”和“/”替换成“-”和“_”、再把等号忽略掉,再来做密码,自己没找到解决办法,最后还是老大alex帮忙解决的。
现在把这段代码分享出来。
其实就是一句话,不过里面涉及到的东西挺多的。
NEW_PSW_MD5=$(echo -n "${NEW_PSW}" | md5sum | xxd -r -p | base64 | sed "s/+/-/g;s/\//_/g;s/=//g")
echo -n 这玩意儿就是不让他输出换行符
md5sum 就是计算MD5的
xxd 这个东西,暂时还不是很熟悉,只是知道 xxd -r -p 这个命令可以把计算出来的32位MD5值装换成16位。
sed "s/+/-/g;s/\//_/g;s/=//g"这一行呢,是把计算结果里面的‘+’替换成‘-’,把‘/’替换成‘_’,把'='干掉。