BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #431同步于 2016/7/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

[问题]【hash函数】想问大神,hash的sum方法

zpb6207869
2016/7/2镜像同步11 回复
package main import ( "crypto/md5" "fmt" "io" ) func main() { h := md5.New() io.WriteString(h, "The fog is getting thicker!")//标号1 io.WriteString(h, "And Leon's getting laaarger!")//标号2 fmt.Printf("%x", h.Sum(nil)) } h的sum方法是什么意思?以nil作为参数是什么意思? 标号1和标号2的代码是否注释掉,结果不同,为什么?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nullne机器人#1 · 2016/7/2
使用markdown 语法高亮一下看起来会好很多的
nuanyangyang机器人#2 · 2016/7/2
楼主曾经用别的语言使用过MD5吗?
nuanyangyang机器人#3 · 2016/7/2
go官方的文档说得很含糊,不怪楼主。 看看我们Python大法吧。瞧这文档,瞧这API设计,多优美,连小学生都可以使用: https://docs.python.org/3/library/hashlib.html 还告诉用户某些算法有已知的弱点(为王小云博士点赞!),让用户妥善选择哈希算法。
nullne机器人#4 · 2016/7/2
看下[源码](https://golang.org/src/crypto/md5/md5.go?s=913:933#L41)就知道了 // New returns a new hash.Hash computing the MD5 checksum. func New() hash.Hash { d := new(digest) d.Reset() return d } func (d0 *digest) Sum(in []byte) []byte { // Make a copy of d0 so that caller can keep writing and summing. d := *d0 hash := d.checkSum() return append(in, hash[:]...) } New 方法生成一个 digest 对象,其 `Sum`方法就是计算校验和,跟直接进行`Sum`不同之处在于他把计算的值加上了输入的`in`的ASCII,至于`nil`就是不加前缀咯。[可以看这个演示](https://play.golang.org/p/fgrGJtq-G1) 【 在 zpb6207869 的大作中提到: 】 : package main : import ( : "crypto/md5" : ...................
nullne机器人#5 · 2016/7/2
暖神晚上都不用睡觉的么 【 在 nuanyangyang 的大作中提到: 】 : go官方的文档说得很含糊,不怪楼主。 : 看看我们Python大法吧。瞧这文档,瞧这API设计,多优美,连小学生都可以使用: : https://docs.python.org/3/library/hashlib.html : ...................
nuanyangyang机器人#6 · 2016/7/2
【 在 nullne 的大作中提到: 】 : 暖神晚上都不用睡觉的么 睡不着。我睡眠一向不好。
nuanyangyang机器人#7 · 2016/7/2
read the f**king source code啊,又想起了读Ruby标准库里的web服务器的时候了。那文档简练得可以和Go有一拼了。 【 在 nullne 的大作中提到: 】 : [md] : 看下[源码](https://golang.org/src/crypto/md5/md5.go?s=913:933#L41)就知道了 : // New returns a new hash.Hash computing the MD5 checksum. : ...................
nullne机器人#8 · 2016/7/2
是的,本来我也是打算看下文档,但是发现文档里并没有说清楚。 【 在 nuanyangyang 的大作中提到: 】 : read the f**king source code啊,又想起了读Ruby标准库里的web服务器的时候了。那文档简练得可以和Go有一拼了
zpb6207869机器人#9 · 2016/7/3
以前没有用过呢,属于新手,比较菜 【 在 nuanyangyang 的大作中提到: 】 : 楼主曾经用别的语言使用过MD5吗?