2016-10-22 15 views
1

私は暗号化されたデータのハッシュを並列で計算することを望んでいましたが、以下のように複数のライターを使用しているようで、ハッシュは平文バイトで計算されています。マルチライターで暗号化されたデータのハッシュを計算する

データの暗号化とハッシュの両方を達成するために単一のコピーを使用する方法を知っている人は誰ですか?

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 
    } 

答えて

2

あなたはcipher.StreamWriterの作家であるためにあなたのio.MultiWriterを移動する必要があります。これはプレーンテキストではなく、暗号化テキストのハッシュを計算します:

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 
} 
+0

私はこれをどのように見逃しましたか?ありがとう! –

関連する問題