为了账号安全,请及时绑定邮箱和手机立即绑定

Go Sha256Sum 与 Bash sha256sum 的区别

Go Sha256Sum 与 Bash sha256sum 的区别

Go
翻过高山走不出你 2023-03-21 14:48:39
我的 go 代码生成的 sha256sum 值与 bash 命令行不同。我已经阅读了各种问题和答案,它们都指向我已经做过的事情,正如这个社区在发帖前要求我做的那样这是我的 sha256sum 代码gosha256Key:=verifyEmail+":"+md5password+":"+dateStrhasherSha256 := sha1.New()hasherSha256.Write([]byte(sha256Key))sha256Val:=hex.EncodeToString(hasherSha256.Sum(nil))这是我的bash脚本代码:key=$( echo -n "$verifyEmail:$md5PWD:$pwTime" | sha256sum)echo $key我已经验证密钥是相同的。请注意,我在 go 中的 dateStr 变量来自日期格式:now := time.Now().Unix()rem := now % 3600date := now-rem         dateStr:=strconv.FormatInt(date,10)通常我会被否决,所以我试着让这个问题尽可能清晰和简洁。如果我遗漏了什么,请告诉我。
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

你说你想计算 SHA-256 校验和,但你这样做了:

hasherSha256 := sha1.New()

那将是一个 SHA-1 散列器,而不是 SHA-256。而是这样做:

hasherSha256 := sha256.New()

另请注意,要计算某些数据的“一次性”摘要(在字节片中准备好),您可以使用sha256.Sum256()如下函数:

digest := sha256.Sum256([]byte(sha256Key))

请注意,这里digest将是一个数组(不是slice,在 Go 中它们是完全不同的),一个 type 的数组[32]byte。要获得“它的”切片(类型为[]byte),请像这样切片:

digestSlice := digest[:]


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号