Problem mit Stegoprogramm
Übersicht

![]() |
SmilyBetreff: Problem mit Stegoprogramm |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiho,
Ich habe mir gestern den Film Numbers angesehen und habe dort eine Inspiration für ein neues Projekt gefunden: Ein Stegano-programm, welches ein Bild in einem anderen Verstecken kann. Ich habe das Programm jetzt in den Grundzügen auch schon funktionsfähig. Nun wollte ich aber mal ein passwort mit reinnehmen, aber nun wird das Bild nicht mehr richtig Entschlüsselt. Hier ist erstmal die Version ohne Passwort (Die Bilder dafür findet ihr bei WinXP unter "Eigene Bilder\Beispielbilder": Verschlüsseln: Code: [AUSKLAPPEN] img1 = LoadImage("Sonnenuntergang.jpg")
img2 = LoadImage("wasserlilien.jpg") gx = ImageWidth(img1) gy = ImageHeight(img1) cgx = ImageWidth(img2) cgy = ImageHeight(img2) If cgx <> gx RuntimeError "Die Bilder müssen gleich groß sein" If cgy <> gy RuntimeError "Die Bilder müssen gleich groß sein" LockBuffer ImageBuffer(img1) LockBuffer ImageBuffer(img2) For x = 0 To gx-1 For y = 0 To gy-1 s = s + 1 c1 = ((Readpixelfast(x,y,imagebuffer(img1)) And %111100001111000011110000) Shr 4) c2 = ReadPixelFast(x,y,imagebuffer(img2)) And %111100001111000011110000 WritePixelFast(x,y,c1 Or c2 ,imagebuffer(img1)) Next Flip next UnlockBuffer ImageBuffer(img1) UnlockBuffer ImageBuffer(img2) SaveImage img1, "test2.bmp" Entschlüsseln: Code: [AUSKLAPPEN] img = LoadImage("test2.bmp")
Gx = ImageWidth(img) gy = ImageHeight(img) LockBuffer ImageBuffer(img) For x = 0 To gx-1 For y = 0 To gy-1 c=ReadPixelFast(x,y,imagebuffer(img)) Shl 4 WritePixelFast(x,y,c,imagebuffer(img)) Next next UnlockBuffer ImageBuffer(img) SaveImage(img,"test.bmp") Hier funktioniert noch alles Prima. und da ist die Version mit Passwort: Verschlüsseln: Code: [AUSKLAPPEN] pw1$ = "098f6bcd4621d373cade4e832627b4f6"
For x = 1 To Len(pw1$) Step 2 z1 = val(Mid$(pw1$,x,1)) z2 = val(mid$(pw1$,x+1,1)) pw$ = pw$ + Chr$(z1*16+z2) Next img1 = LoadImage("Sonnenuntergang.jpg") img2 = LoadImage("wasserlilien.jpg") gx = ImageWidth(img1) gy = ImageHeight(img1) cgx = ImageWidth(img2) cgy = ImageHeight(img2) If cgx <> gx RuntimeError "Die Bilder müssen gleich groß sein" If cgy <> gy RuntimeError "Die Bilder müssen gleich groß sein" LockBuffer ImageBuffer(img1) LockBuffer ImageBuffer(img2) For x = 0 To gx-1 For y = 0 To gy-1 s = s + 1 check1 = Asc(mid$(pw$,(s Mod Len(pw$))+1,1)) And %1111 check2 = Asc(mid$(string(pw$,2),(s Mod Len(pw$))+2,1)) And %1111 check3 = Asc(mid$(string(pw$,2),(s Mod Len(pw$))+3,1)) And %1111 c1 = ((Readpixelfast(x,y,imagebuffer(img1)) And %111100001111000011110000) Shr 4) c1 = c1 Xor (check1 + check2*256+check3*256^2) c2 = ReadPixelFast(x,y,imagebuffer(img2)) And %111100001111000011110000 WritePixelFast(x,y,c1 Or c2 ,imagebuffer(img1)) Next Flip next UnlockBuffer ImageBuffer(img1) UnlockBuffer ImageBuffer(img2) SaveImage img1, "test2.bmp" Function val(hx$) Select hx$ Case "a": Return 10 Case "b": Return 11 Case "c": Return 12 Case "d": Return 13 Case "e": Return 14 Case "f": Return 15 Default: Return hx End select end function und Entschlüsseln: Code: [AUSKLAPPEN] pw1$ = "098f6bcd4621d373cade4e832627b4f6"
For x = 1 To Len(pw1$) Step 2 z1 = val(Mid$(pw1$,x,1)) z2 = val(mid$(pw1$,x+1,1)) pw$ = pw$ + Chr$(z1*16+z2) Next Print pw$ img = LoadImage("test2.bmp") Gx = ImageWidth(img) gy = ImageHeight(img) LockBuffer ImageBuffer(img) For x = 0 To gx-1 For y = 0 To gy-1 c=ReadPixelFast(x,y,imagebuffer(img)) Shl 4 check1 = Asc(mid$(pw$,(s Mod Len(pw$))+1,1)) And %1111 check2 = Asc(mid$(string(pw$,2),(s Mod Len(pw$))+2,1)) And %1111 check3 = Asc(mid$(string(pw$,2),(s Mod Len(pw$))+3,1)) And %1111 c = c Xor (check1 + check2*256+check3*256^2) WritePixelFast(x,y,c,imagebuffer(img)) Next next UnlockBuffer ImageBuffer(img) SaveImage(img,"test.bmp") Function val(hx$) Select hx$ Case "a": Return 10 Case "b": Return 11 Case "c": Return 12 Case "d": Return 13 Case "e": Return 14 Case "f": Return 15 Default: Return hx End select End function Ich weis einfach nicht was hier schiefläuft. Soweit ich das sehe wird hier beim Verschlüsseln auf den zu verschlüsselnden farbcode eine einfache Xor-Verschlüsselung durchgeführt. Und beim Entschlüsseln wird auf den Ausgelesenen wird der Farbcode mit xor wieder zurück-verschlüsselt. Wieso funktioniert das dann aber nicht? thx4help, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
sry fürs Pushen.
Aber es muss doch irgendwen geben, der mir helfen kann... |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group