I need to create SHA512 from string:
20191018143572123034102012221314181237774212
And I need same result as it is on this web calculator: podatki.gov.pl/kalkulator-sha-512
Where:
NIP: 1435721230
Numer konta: 34 1020 1222 1314 1812 3777 4212
Wprowadz date: 18-10-2019
When I am going on 1 iteration, I have same result as on web. But from 2 or more iterations, my results are different.
I am trying to use built-in SHA512 class, or BouncyCastle package, but with no luck.
Please how should I prepare data for second and the next iterations in my program?
static void Main(string[] args)
{
string puvodni = "20191018143572123034102012221314181237774212";
Console.WriteLine("Puvodni: " + puvodni);
//varianta 1
SHA512 sha512 = SHA512.Create();
byte[] hash = Encoding.UTF8.GetBytes(puvodni);
for (int i = 0; i < 2; i++)
{
hash=sha512.ComputeHash(hash);
string result = BitConverter.ToString(hash).Replace("-", "");
Console.WriteLine(i.ToString() + ". Hash: " + result);
}
//varianta 2
byte[] bytes = Encoding.UTF8.GetBytes(puvodni);
Org.BouncyCastle.Crypto.Digests.Sha512Digest digester = new Org.BouncyCastle.Crypto.Digests.Sha512Digest();
for (int i = 0; i < 2; i++)
{
byte[] retValue = new byte[digester.GetDigestSize()];
digester.BlockUpdate(bytes, 0, bytes.Length);
digester.DoFinal(retValue, 0);
string result1 = BitConverter.ToString(retValue).Replace("-", "");
Console.WriteLine("BouncyCastle Hash: " + i.ToString() + ". " + result1);
bytes=retValue;
}
}