[MODERN UI] Aes in einer Windows 8 App?

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ShadowDialga.

    [MODERN UI] Aes in einer Windows 8 App?

    Hallo Community,

    heute hätte ich eine Frage zur Entwicklung einer App für Windows 8. Und zwar suche ich eine Möglichkeit, einen beliebigen String mit Aes zu verschlüsseln. Im "normalen" .NET hat man hierfür ja die AesManaged Klasse, bei Windows 8 Apps ist diese allerdings nicht vorhanden. Ich habe bereits rausgefunden dass man dafür die Klassen im Namespace "Windows.Security.Cryptography.Core" benutzen muss, habe bisher allerdings trotz langer Suche nicht gefunden wie genau ich diese anweden soll. Deshalb dachte ich mir, dass ich mich an euch wenden kann.
    Mein Frage ist also wie ich einen String hiermit ver-/entschlüsseln kann. Recht wäre mir jede Quelle oder jeder Codeschnipsel, die/der das zeigen würde.

    Ich danke im Vorraus. :)
    MfG
    In Windows-Security gibt es eine Methode dazu:

    VB.NET-Quellcode

    1. <System.Runtime.CompilerServices.Extension> _
    2. Public Shared Function HashWith(input As String, hashProvider As HashAlgorithmProvider, key As String) As String
    3. Dim mac As MacAlgorithmProvider = MacAlgorithmProvider.OpenAlgorithm(hashProvider.AlgorithmName)
    4. Dim keyMaterial As IBuffer = CryptographicBuffer.ConvertStringToBinary(key, BinaryStringEncoding.Utf8)
    5. Dim cryptoKey As CryptographicKey = mac.CreateKey(keyMaterial)
    6. 'IBuffer hash = hashProvider.HashData(CryptographicBuffer.ConvertStringToBinary(input, BinaryStringEncoding.Utf8));
    7. Dim hash As IBuffer = CryptographicEngine.Sign(cryptoKey, CryptographicBuffer.ConvertStringToBinary(input, BinaryStringEncoding.Utf8))
    8. Return CryptographicBuffer.EncodeToBase64String(hash)
    9. End Function


    Is von C# konvertiert!

    Das hier sollte eigentlich auch bei Metro gehen:

    VB.NET-Quellcode

    1. Public Function AES_Encrypt(input As String, pass As String) As String
    2. Dim SAP As SymmetricKeyAlgorithmProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcbPkcs7)
    3. Dim AES As CryptographicKey
    4. Dim HAP As HashAlgorithmProvider = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5)
    5. Dim Hash_AES As CryptographicHash = HAP.CreateHash()
    6. Dim encrypted As String = ""
    7. Try
    8. Dim hash As Byte() = New Byte(31) {}
    9. Hash_AES.Append(CryptographicBuffer.CreateFromByteArray(System.Text.Encoding.UTF8.GetBytes(pass)))
    10. Dim temp As Byte()
    11. CryptographicBuffer.CopyToByteArray(Hash_AES.GetValueAndReset(), temp)
    12. Array.Copy(temp, 0, hash, 0, 16)
    13. Array.Copy(temp, 0, hash, 15, 16)
    14. AES = SAP.CreateSymmetricKey(CryptographicBuffer.CreateFromByteArray(hash))
    15. Dim Buffer As IBuffer = CryptographicBuffer.CreateFromByteArray(System.Text.Encoding.UTF8.GetBytes(input))
    16. encrypted = CryptographicBuffer.EncodeToBase64String(CryptographicEngine.Encrypt(AES, Buffer, Nothing))
    17. Return encrypted
    18. Catch ex As Exception
    19. Return Nothing
    20. End Try
    21. End Function
    22. Public Function AES_Decrypt(input As String, pass As String) As String
    23. Dim SAP As SymmetricKeyAlgorithmProvider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcbPkcs7)
    24. Dim AES As CryptographicKey
    25. Dim HAP As HashAlgorithmProvider = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5)
    26. Dim Hash_AES As CryptographicHash = HAP.CreateHash()
    27. Dim decrypted__1 As String = ""
    28. Try
    29. Dim hash As Byte() = New Byte(31) {}
    30. Hash_AES.Append(CryptographicBuffer.CreateFromByteArray(System.Text.Encoding.UTF8.GetBytes(pass)))
    31. Dim temp As Byte()
    32. CryptographicBuffer.CopyToByteArray(Hash_AES.GetValueAndReset(), temp)
    33. Array.Copy(temp, 0, hash, 0, 16)
    34. Array.Copy(temp, 0, hash, 15, 16)
    35. AES = SAP.CreateSymmetricKey(CryptographicBuffer.CreateFromByteArray(hash))
    36. Dim Buffer As IBuffer = CryptographicBuffer.DecodeFromBase64String(input)
    37. Dim Decrypted__2 As Byte()
    38. CryptographicBuffer.CopyToByteArray(CryptographicEngine.Decrypt(AES, Buffer, Nothing), Decrypted__2)
    39. decrypted__1 = System.Text.Encoding.UTF8.GetString(Decrypted__2, 0, Decrypted__2.Length)
    40. Return decrypted__1
    41. Catch ex As Exception
    42. Return Nothing
    43. End Try
    44. End Function

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „programmer71“ ()