2017-05-17 11 views
1

Windows用の新しいUWPアプリケーションで使用する必要がある簡単な暗号化機能がいくつかあります.AesManagedはUWPでは使用できないため、Windows.Securityを見てきました。 Cryptography.Coreのドキュメントと投稿はここにありますが、動作させることはできません。たとえば、パディングを設定する場所が見つかりませんでした。 2つの機能は、バイト配列でもキーを使用して、バイト配列バッファの内容を暗号化および復号化します。UWPでのXamarinフォームプロジェクトのAES暗号化

byte[] Buffer; 

    private void EncryptBuff(byte[] sessionKey) 
    { 
     AesManaged myAes = new AesManaged(); 

     myAes.Mode = CipherMode.ECB; 
     myAes.KeySize = 128; 
     myAes.Key = sessionKey; 
     myAes.Padding = PaddingMode.Zeros; 

     ICryptoTransform encryptor = myAes.CreateEncryptor(); 
     Buffer = encryptor.TransformFinalBlock(Buffer, 0, Buffer.Length); 
    } 

    private void DecryptBuff(byte[] sessionKey) 
    { 
     AesManaged myAes = new AesManaged(); 

     myAes.Mode = CipherMode.ECB; 
     myAes.KeySize = 128; 
     myAes.Key = sessionKey; 
     myAes.Padding = PaddingMode.Zeros; 

     ICryptoTransform decryptor = myAes.CreateDecryptor(); 
     Buffer = decryptor.TransformFinalBlock(Buffer, 0, Buffer.Length); 
    } 

これを翻訳してUWPアプリケーションで実行すると助けてください。このコードは既存のハードウェアコントローラとの通信に使用されるため、セキュリティを向上させるために変更することはできません。

また、これはXamarin Android/iOS/UWPプロジェクトのため、私が知る限り、.NET Coreは残念なことにオプションではありません。元のコードはAndroid/iOSでは正常に動作しますが、UWPでは正常に動作しません。

ありがとうございます!

+0

http://stackoverflow.com/a/41714595/3888657この回答をご覧ください。 Mode/PaddingはAlgorithmNameで変更できます。 – TheTanic

答えて

2

AesManagedは.NET Core 1.0または1.1では使用できませんが、Aes.Create()が利用可能です。あなたは

Aes myAes = Aes.Create(); 

AesManaged myAes = new AesManaged(); 

を交換する場合はすべてがちょうど.NETのコア/ UWPパッケージ上で動作します。

+0

ありがとうbartonjsが、これはクロスプラットフォームのXamarinフォームアプリだと言うのを忘れてしまったので、明らかに.NETコアはありません。私はそれを使用することができます:あなたのおかげで素晴らしい解決策になります!ありがとう。 – MPM