php执行md5sum,go与php的md5功能,加密后不一致问题

现在因要对接一个平台的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中如何实现?

谢谢!

回答

package main

import (

"crypto/md5"

"encoding/base64"

"fmt"

)

func main() {

h := md5.New()

h.Write([]byte("hello"))

fmt.Println(base64.StdEncoding.EncodeToString(h.Sum(nil)))

fmt.Println("Hello, playground")

// echo: XUFAKrxLKna5cZ2REBfFkg==

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值