2016-03-29 12 views
-1

私はC++SHA256ハッシュ計算

 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#コードを変換しようとしていますが、C++

+0

* *「私がしようとしています」 - おそらくあなたはあなたの努力を表示するために気にしたいですこれまでのところ、あなたが立ち往生している場所を言う? –

+0

C#コードは.NET基本クラスライブラリを使用します。 C++を使用して.NETアプリケーションを作成しますか? C++に基づく言語である[managed C++/CLI](https://en.wikipedia.org/wiki/C%2B%2B/CLI)を使用して行うことができます。しかし、私はアンマネージドアプリケーション(.NETなし)を実装したいと思う。その場合、[Windows CryptoAPI](https://msdn.microsoft.com/en-us/library/windows/desktop/aa380255(v=vs.85).aspx)を使用することができます。 –

答えて

0

で上記のコードのいずれかのオプションを無料Crypto++ライブラリを見てみた試しがあります。 SHA256やAES/Rijndaelを含むいくつかの暗号アルゴリズムを実装しています。

SHA256ハッシュを作成し、AESの暗号化を解除する方法の例については、以下の議論を確認してください:

Create a SHA256 hash with Crypto++

Using AES with Crypto++

関連する問題