示例#1
0
        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}");
    }