使用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

使用golang编码计算sha256加密,运行时报错panic: crypto: requested hash function #5 is unavailable先贴一下源码:package mainimport ( "crypto" "encoding/hex" "fmt")func main() { s := "Transfer(address,address,uint256)" m := crypto.SHA256.New() m.Write([]byte(s)) v :
0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10)如何修改这个bug
这个错误提示是因为你的代码中使用了不支持的数字信封例程,具体错误在创建哈希时抛出,建议按照以下步骤修改该错误: 1. 查看你的代码中哪些部分使用了数字信封例程,例如加密、解密、签名、验证等等。 2. 确认你的代码是基于哪个版本的 Node.js 运行的,如果你使用了较老的版本,可能需要升级到更高版本以支持数字信封例程。 3. 如果你确定使用的 Node.js 版本已支持相应的数字信封例程,那么可以尝试升级你使用的加解密库,也可以查看该加解密库的文档,看看是否有关于该错误的解决方案。 4. 重新运行程序,看看是否还会出现该错误,如果还是出现该错误,请参考错误提示信息中的行数和列数,检查相应位置的代码是否存在问题,例如参数传递错误、变量未定义等等。 如果以上方法都无法解决该错误,请考虑寻求更高水平的技术支持。
CSDN-Ada助手: AI 写作助手上线啦!限免 4 天,快来创作试试功能吧~https://editor.csdn.net/md/?not_checkout=1&utm_source=blog_comment_recall,在编辑器页面右侧哦~ 新星计划正在进行中,专业导师带队学习,参加还有专属大礼哦~https://marketing.csdn.net/p/1738cda78d47b2ebb920916aab7c3584?utm_source=blog_comment_recall 去除stackoverflow页面上关不掉的cookie弹窗 Scarlett2025: 没有匹配项啊 gethostbyname的用法以及阻塞问题 Aplionm: 这是linux下运行吗?有没有在Windows下编程的,我是小白不太懂 去除stackoverflow页面上关不掉的cookie弹窗 csdnpika: 这个点上面的 try other Source 然后再设置下面的就可以了啊 OpenHarmony鸿蒙Wifi AP业务流程分析 鸿蒙一只杨: 需要开通vip才能解锁文章表情包