这可能是一个非常基本和愚蠢的问题,但我被困住了。据我所知documentation,如果导入了给定的哈希函数,则Available()函数应该返回true
。所以,这段代码:
package main
import (
"crypto/md5"
"fmt"
)
func main() {
fmt.Println(md5.Available())
}
应该生成true
作为输出。但是,当我尝试运行上面的代码时,我收到“./main.go:10:undefined:md5.Available”错误。我错过了什么?提前谢谢。
答案 0 :(得分:2)
您使用的md5
是包的标识符,您需要的是Hash类型的“实例”:
import (
"crypto"
"fmt"
)
func main() {
fmt.Println(crypto.MD5.Available())
}
输出:
false
答案 1 :(得分:1)
crypto.MD5.Available()
:
可用报告是否将给定的哈希函数链接到 二进制的。
哈希函数链接到二进制文件:
工作示例代码(crypto.MD5.Available()
== true
):
package main
import (
"crypto"
"crypto/md5"
"fmt"
)
func main() {
fmt.Println(crypto.MD5.Available()) // true
w := md5.New()
fmt.Fprintf(w, "Hello World")
fmt.Printf("%x \n", w.Sum(nil))
}
哈希函数未链接到二进制文件:
package main
import (
"crypto"
"fmt"
)
func main() {
fmt.Println(crypto.MD5.Available())
}
输出:
false