Ich habe ein paar einfache Verschlüsselungsfunktionen, die ich in einer neuen UWP-App für Windows 10 verwenden muss. Da AesManaged in UWP nicht verfügbar ist, habe ich Windows.Security betrachtet. Cryptography.Core Docs und Posts hier, aber es scheint nicht zu funktionieren. Zum Beispiel habe ich nicht gefunden, wo ich Padding einstellen soll. Die zwei Funktionen verschlüsseln und entschlüsseln den Inhalt eines Byte-Array-Puffers unter Verwendung eines Schlüssels auch in einem Byte-Array.AES-Verschlüsselung in UWP für Xamarin Forms-Projekt
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);
}
Jede Hilfe, die dies übersetzt, um in einer UWP-App zu laufen, würde sehr geschätzt werden. Dieser Code wird für die Kommunikation mit einem vorhandenen Hardware-Controller verwendet, sodass ich keine Änderungen vornehmen kann, um die Sicherheit zu verbessern.
Auch dies ist für ein Xamarin Android/iOS/UWP-Projekt, also was ich sagen kann, ist .NET Core leider keine Option. Der ursprüngliche Code funktioniert gut in Android/iOS, aber nicht UWP.
Danke!
http://StackOverflow.com/a/41714595/3888657 Werfen Sie einen Blick auf diese Antwort. Sie können den Mode/Padding über den AlgorithmName ändern. – TheTanic