最近在看 .NET 8 新功能,最近好像多了 SHA3_256 ,因為之前在弄區塊鏈的東西,其實都是使用套件
BouncyCastle 套件,但是現在 .NET 8 好像已經內建有支援,想說來測試一下,結果出現了
Unhandled exception. System.PlatformNotSupportedException: Operation is not supported on this platform.
at System.Security.Cryptography.SHA3_256.TryHashData(ReadOnlySpan`1 source, Span`1 destination, Int32& bytesWritten)
at System.Security.Cryptography.SHA3_256.HashData(ReadOnlySpan`1 source, Span`1 destination)
at System.Security.Cryptography.SHA3_256.HashData(ReadOnlySpan`1 source)
at System.Security.Cryptography.SHA3_256.HashData(Byte[] source)
後來我找了一下問題,好像是我現在的 Win11 還沒有安全更新到某個版本 ,要到某個版本之後才可以使用
其實我也只是要做一個簡單的 hash ,所以我只能部屬到 我的 Raspberry Pi 4 測試看看果然可以
所以這邊大概簡單記錄一下 ,在 .NET 8 做 SHA3-256 的 code
結果:
因為是做 hash 的關係,要看自己 hash 出來是不是對的 我用這兩個網站來做比對
https://md5calc.com/hash/sha3-256/%E7%95%B6%E9%BA%BB%E8%A8%B1%E6%B8%AC%E8%A9%A6
https://emn178.github.io/online-tools/sha3_256.html
hash 之後看起來一樣 應該就是沒啥問題了,只是如果你有跨平台需求你可以暫時先用三方套件,之後客戶端普及了,在使用內建的