Image (JPG o. a.) verschlüsselt, entschlüssel und dann nach Bitmap

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

    Image (JPG o. a.) verschlüsselt, entschlüssel und dann nach Bitmap

    Hallo,

    ich komme gerade nicht weiter und bitte euch mal um eure Hilfe.

    Habe eine z.B. Image-Datei, diese wird von mir verschlüsselt (anderes Programm).

    In meinem "Hauptprogramm" entschlüssel ich die Datei wieder und steht als String zur Verfügung. So:

    VB.NET-Quellcode

    1. ' Hier wird wieder entschlüsselt - mit decrypt Methode.
    2. Public Shared Function decrypt(ByVal value As String) As String
    3. Dim b() As Byte = Convert.FromBase64String(value)
    4. Dim d As TripleDES = Methode("DASPASSWORT")
    5. Dim c As ICryptoTransform = d.CreateDecryptor
    6. Dim output() As Byte = c.TransformFinalBlock(b, 0, b.Length)
    7. Return Encoding.Unicode.GetString(output)
    8. End Function
    9. Public Shared Function Methode(ByVal key As String) As TripleDES
    10. Dim m As MD5 = New MD5CryptoServiceProvider
    11. Dim d As TripleDES = New TripleDESCryptoServiceProvider
    12. d.Key = m.ComputeHash(Encoding.Unicode.GetBytes(key))
    13. d.IV = New Byte(((d.BlockSize / 8)) - 1) {}
    14. Return d
    15. End Function


    Wie kann ich nun diesen String (Encoding.Unicode.GetString(output)) zu Bitmap machen?

    ...damit ich Ihn so verwenden kann bzw. natürlich das entschlüsselte Bild:

    VB.NET-Quellcode

    1. ' Hintergrund
    2. Dim bmp As New Bitmap( "Eigentlich-der-String" )
    3. Dim bmp2 As New Bitmap(bmp.Width, bmp.Height)
    4. e.Graphics.DrawImage(bmp, New Rectangle(0, 0, 210, 297))
    Das Byte-Array kannst du in einen Memorystream schieben und dann ein neues Bitmap-Object vom Stream generieren lassen.
    Kurzer Hinweis: Der Code ist ein Parade-Beispiel für schlechte Implementation eines Krypto-Algorithmus!

    MD5 ist denkbar ungeeignet als Key-Derivation-Algo, es ist schließlich ein Hash! Das .net Framework stellt mit der Rfc2898DeriveBytes-Klasse eine super Implementation des PBKDF2-Algos bereit.
    Außerdem ist 3DES schon länger als unsicher bekannt und man sollte eher auf Dinge wie AES ausweichen.