2016-03-29 274 views
-1

我想下面的C#代碼轉換成C++SHA256哈希計算在C++

 SHA256 hash = SHA256.Create(); 
     hash.TransformBlock(key, 0, key.Length, null, 0); 
     for (int i = 0; i < 1000; ++i) 
     { 
      hash.TransformBlock(cipheredSHA256Hash, 0, 32, null, 0); 
     } 
     hash.TransformFinalBlock(cipheredSHA256Hash,0, 0); 

     using (RijndaelManaged rijndael = new RijndaelManaged()) 
     { 
      rijndael.Key = hash.Hash; 
      rijndael.Mode = CipherMode.ECB; 
      rijndael.Padding = PaddingMode.Zeros; 
      ICryptoTransform decryptor = rijndael.CreateDecryptor(); 

      return decryptor.TransformFinalBlock(cipheredOffSet60, 0, cipheredOffSet60.Length); 
     } 

是有上面的代碼在C++中的任何選項

+0

*「我想」 * - 也許您願意展示你的努力到目前爲止,並說你卡在哪裏? –

+0

C#代碼使用.NET基類庫。你想用C++編寫一個.NET應用程序嗎?你可以使用[託管C++/CLI](https://en.wikipedia.org/wiki/C%2B%2B/CLI)這是一種基於C++的語言。但是,我懷疑你想實現一個非託管應用程序(不支持.NET)。在這種情況下,您可以使用[Windows CryptoAPI](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380255(v = vs.85).aspx)。 –

回答