现在因要对接一个平台的api,有一个需求:
go中字符串md5后,再base64后,结果与php版的不一样,
php代码(请注意:md5中的第二个参数为true,为输出二进~~~~制):
$str="hello";
$md5str=md5($str,true);
echo base64_encode($md5str); //echo: XUFAKrxLKna5cZ2REBfFkg==
我自己写的,始终与php版的不一致(如果php版的md5的第二参数为false的话,两个版本的结果就一致).
我的代码如下:
data := []byte("hello")
has := md5.Sum(data)
md5str1 := fmt.Sprintf("%x", has) //将[]byte转成16进制
fmt.Println(base64.StdEncoding.EncodeToString([]byte(md5str1)))
请教下在go中如何实现?
谢谢!
https://play.golang.org/p/pxc-5QnciVv