Bitcoin-Core

CSHA256::Write 和 CSHA256::Finalize 的目的是什麼

  • June 6, 2019

查看 SHA256 的 Bitcoin Core 實現,我注意到它與 OpenSSL 的實現有點不同。

在 OpenSSL 中,您將使用 SHA256_CTX 初始化一個變數,而在 Bitcoin Core 中它使用 valtype(又名 std::vector <unsigned char>)或 uint256 完成。此外,您將經歷初始化、更新、最終的步驟。

在比特幣核心中,它是寫入和完成。

如果有人可以完成基本步驟並解釋為什麼它的實施方式不同,那就太棒了。謝謝!

CSHA256 本身模仿 OpenSSL 的 SHA256_CTX,其建構子模仿 Init 函式。Write 方法對應於 Update 函式。Finalize 方法與 Final 函式匹配。

簡而言之:您構造一個 CSHA256 對象,呼叫 Write 任意次數以將字節提供給散列,然後呼叫 Finalize 來計算生成的散列。

引用自:https://bitcoin.stackexchange.com/questions/88208