Go 利用crypto实现md4计算方法
MD4是麻省理工学院教授Ronald Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128位。这个算法影响了后来的算法如MD5、SHA家族和RIPEMD等。
1991年Den Boer和Bosselaers发表了一篇文章指出MD4的短处, 2004年8月王小云报告在计算MD4时可能发生杂凑冲撞。
Go 会提示 md4 不建议使用,不安全。
package main
import (
"crypto/md5"
"fmt"
"io"
"golang.org/x/crypto/md4"
)
func main() {
fmt.Println("go md4 demo.")
str1 := "https://"
str2 := "const.net.cn"
w1 := md4.New()
io.WriteString(w1, str1)
io.WriteString(w1, str2)
md4str2 := fmt.Sprintf("%x", w1.Sum(nil))
fmt.Println(md4str2)
}
输出:
go run .
go md4 demo.
d6dd1d2a616b6a480c6ce417b517734b
echo -n "https://const.net.cn" | openssl dgst -md4
(stdin)= d6dd1d2a616b6a480c6ce417b517734b