You can't it done in 2-3 seconds. Even if you use this method for calculate hash tables. SATA3 interface max speed 650-700 MBytes per second. Exception only for PCI-E interfaces.
If you bragging the results with PCI-E interface usage then it's not practice and useless in 99.999999% cases for regular users. It's only glamour advertisment.
And not matter what the language you uses - C, C++, C# if you uses not console application. You still lose performance on servicing the program window interface.
I'm uses MD5 hash and it less exploited than your method.