我希望能够并行计算加密数据的哈希值,但似乎使用如下所示的多个写入器,哈希值是用明文字节计算的。
有人知道我如何使用单个副本来实现数据加密和散列吗?
writer := &cipher.StreamWriter{S: cipher.NewCTR(block, iv), W: writeFile}
writeFile.Write(iv)
if _, err := io.Copy(io.MultiWriter(writer, hash), readFile); err != nil {
fmt.Println("error during crypto: " + err.Error())
return "", err
}
最佳答案
您需要移动您的io.MultiWriter
成为cipher.StreamWriter
的编写器。这将计算密文的哈希值,而不是纯文本:
writer := &cipher.StreamWriter{
S: cipher.NewCTR(block, iv),
W: io.MultiWriter(writeFile, hash),
}
writeFile.Write(iv)
if _, err := io.Copy(writer, readFile); err != nil {
fmt.Println("error during crypto: " + err.Error())
return "", err
}
关于go - 使用多写入器计算加密数据的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190136/