我目前正在研究Fabric 1.2 encc示例,并尝试使用内置的BCCSP。在该示例中,显示了经典的加密和验证方案,但是似乎忽略了哈希。
我目前的理解是我们可以实例化一个Encrypter实体以能够访问Hash方法-就像这样(Go中的代码):
ent, crerr := entities.NewAES256EncrypterEntity("ID", t.bccspInst,[]byte(AESKEY1), nil)
hashedmsg, myerr := ent.BCCSP.Hash(msg, &bccsp.SHA3_384Opts{})
因此,基本上,我试图创建一个Encrypter实体以创建哈希。根据我的密码学知识,只需一个Init Vector即可对例如文本或文档等,但不是整个私钥。我相信我使用的是这种错误,但是不知道从哪里开始寻找,所以我恳请寻求帮助。还是我最好使用 golang.org/x/crypto/sha3 进行这项工作?
上面代码的输出实际上生成一个148个字符长的十六进制值。这实际上并不对应于SHA3-384哈希,该哈希将具有96个十六进制字符。从逻辑上来说,即使SHA3-512也只有128个字符。