你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

crypto: requested hash function #5 is unavailable

2021-11-29 4:06:47

使用golang编码计算sha256加密,运行时报错panic: crypto: requested hash function #5 is unavailable

先贴一下源码:

package main

import (
	"crypto"
	"encoding/hex"
	"fmt"
)

func main() {
	s := "Transfer(address,address,uint256)"
	m := crypto.SHA256.New()
	m.Write([]byte(s))
	v := hex.EncodeToString(m.Sum(nil))
	fmt.Println(v)
	return
}

在stackoverflow上找到相同的问题,其实是需要主动注册sha256加密算法。

哈希函数必须通过导入import _ "whatever"。这些文件不会自动链接到二进制文件中,所以编译不会报错,运行时就报错了。

解决办法就是主动import “crypto/sha256”

package main

import (
	"crypto"
	_ "crypto/sha256"
	"encoding/hex"
	"fmt"
)

func main() {
	s := "Transfer(address,address,uint256)"
	m := crypto.SHA256.New()
	m.Write([]byte(s))
	v := hex.EncodeToString(m.Sum(nil))
	fmt.Println(v)
	return
}

参考:
openpgp-in-go-error-crypto-requested-hash-function-is-unavailable