Gehen, midstate SHA-256-hash

Mit 128 bytes von Daten, zum Beispiel:

00000001c570c4764aadb3f09895619f549000b8b51a789e7f58ea750000709700000000103ca064f8c76c390683f8203043e91466a7fcc40e6ebc428fbcc2d89b574a864db8345b1b00b5ac00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

Zu wollen, führen SHA-256-hash auf, es wäre zu trennen, die in zwei 64-Byte Daten und hash Sie einzeln vor der Vermischung die Ergebnisse zusammen. Wenn man zu oft zu ändern, einige bits in der zweiten Hälfte der Daten, könnte man vereinfacht die Berechnungen und hash der ersten Hälfte der Daten nur einmal. Wie würde man das in Google Gehen? Ich habe versucht, den Aufruf

func SingleSHA(b []byte)([]byte){
    var h hash.Hash = sha256.New()
    h.Write(b)
    return h.Sum()
}

Aber statt der richtigen Antwort

e772fc6964e7b06d8f855a6166353e48b2562de4ad037abc889294cea8ed1070

Bekam ich

12E84A43CBC7689AE9916A30E1AA0F3CA12146CBF886B60103AEC21A5CFAA268

Bei der Erörterung der Frage, auf Bitcoin forum, jemand erwähnte, dass es sein könnte einige Probleme bekommen, die midstate hash.

Wie berechne ich eine midstate SHA-256-hash in Google Gehen?

  • Im Gehen 1.0.3, Summe dauert ein byte-slice, also müssen Sie schreiben h.Sum([]byte{}) zurück
  • h.Sum(nil) gilt auch, @emicklei 🙂
InformationsquelleAutor ThePiachu | 2012-02-12
Schreibe einen Kommentar