私はUWPプラットフォーム上で暗号化と復号化を試みていますが、この問題を解明しようとしています。 まず、「サンプル文」という文字列を暗号化します。その後CryptographicEngine.DecryptAsync throwing "System.InvalidCastException: '指定されたキャストは無効です。' "CryptographicEngine.Decryptはしません
IBuffer bufEncrypted = CryptographicEngine.Encrypt(key, CryptographicBuffer.ConvertStringToBinary(strToEncrypt, BinaryStringEncoding.Utf8), null);
string strEncrypted = CryptographicBuffer.EncodeToBase64String(bufEncryptedStr);
、私が使用して "strEncrypted" を解読しようとすると:次のように使用して
IBuffer bufToDecrypt = CryptographicBuffer.DecodeFromBase64String(strEncrypted);
IBuffer bufEncryptedStr = await CryptographicEngine.DecryptAsync(key, bufToDecrypt, null);
を私のようにエラーが出ます "System.InvalidCastExceptionの: '指定されたキャストは有効ではありません。'"。しかし
、私が使用して同じ暗号解読を試みる:
私はすべてのエラーを取得しないと、使用して復号化された文字列を取得できます。
CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, bufEncryptedSt1r);
任意のアイデア私が欠落しているかもしれないもの?
関連情報:
IBuffer bufKeyMaterial = CryptographicBuffer.GenerateRandom(256);
SymmetricKeyAlgorithmProvider provider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcbPkcs7);
CryptographicKey key = provider.CreateSymmetricKey(bufKeyMaterial);
これはMicrosoftのドキュメントにはっきりと記載されていなかった理由がわかりません。私はそれが無効なキャスト例外をスローすることは知らなかった。ありがとう! –