public void Execute() { var sha256 = new SHA256(); sha256.Initialize(); sha256.Update(data); sha256.Final(hash); }
unsafe void Start() { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); var file = File.OpenRead(Application.streamingAssetsPath + "/data"); SHA256 sha256 = new SHA256(); SHA256.Initialize(&sha256); var buffer = new byte[64 * 1024]; for (;;) { var n = file.Read(buffer, 0, buffer.Length); if (n == 0) { break; } fixed(byte *p = buffer) { SHA256.Update(&sha256, p, n); } } var hash = new NativeArray <byte>(32, Allocator.Temp); SHA256.Final(&sha256, hash); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; Debug.Log($"{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds / 10:00}"); Debug.Log($"{hash[0]:X2}{hash[1]:X2}{hash[2]:X2}{hash[3]:X2}{hash[4]:X2}{hash[5]:X2}{hash[6]:X2}{hash[7]:X2}{hash[8]:X2}{hash[9]:X2}{hash[10]:X2}{hash[11]:X2}{hash[12]:X2}{hash[13]:X2}{hash[14]:X2}{hash[15]:X2}{hash[16]:X2}{hash[17]:X2}{hash[18]:X2}{hash[19]:X2}{hash[20]:X2}{hash[21]:X2}{hash[22]:X2}{hash[23]:X2}{hash[24]:X2}{hash[25]:X2}{hash[26]:X2}{hash[27]:X2}{hash[28]:X2}{hash[29]:X2}{hash[30]:X2}{hash[31]:X2}"); }