Mehrere Daten Verschlüsseln...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Mehrere Daten Verschlüsseln...

BeitragSa, Aug 12, 2006 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich würde gerne noch diese frage beantwortet bekommen *g*
und zwar nehmen wir mal an wir hätten nun 20 bilder und 5 mp3's diese kann man ja alle mit winrar packen und passwort sicher machen, aber das möchte ich gar nicht ich möchte das diese bilder und mp3's nur passwort gesichert sind als eine file die man mit einem programm was programmiert werden muss öffnen kann und sehen kann um welche dateien es geht, nachdem man das passwort eingegeben hat, dieses passwort sollen für alle dateien gelten die in diesem packet enthalten sind, solang man nicht ein neues packet öffnet soll man jede datei sich ansehen können oder auch anhören können, je nach dem dateityp eben.

wie kann man sowas machen?
wie gesagt es soll nix komprimiert werden es soll nur alle files pw, gesichert werden.

danke für eure hilfe und antworten.

edit . es soll hinterher nur eine datei geben...

Goodjee

BeitragSa, Aug 12, 2006 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
also:

ich würde das ganz einfach ungefähr so machen:

bestimmte zeichenfolge steht für anfang einer neuen datei, danach folgt der name und dann wird das verschlüsselte entschlüsselt wieder in die ursprüunglichen dateien geschrieben


zur verschlüsselung:
wie wäre es mit einer einfachen cäsarverschlüsselung??? sprich alle asciiwerte +belibigen wert

oder

mit einem längeren schlüssel, also der erste buchstabe um 5 erweitert, der 2. buchstabe um 3, der 3. um -3 und dann den vierten wieder um 5, 5. um 3 und so weiter
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Cardonic

BeitragSa, Aug 12, 2006 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Goodjee hat Folgendes geschrieben:
bestimmte zeichenfolge steht für anfang einer neuen datei [...]

Das empfiehlt sich nicht, da es ja sein kann, dass diese Zeichenfolge zufälligerweise auch an einem anderen ort vorkommt. Ich würde eher die Länge vor jede Datei schreiben. Dann kann das Programm die Datei laden und entschlüssen und weiss auch, wann diese aufhört und die nächste anfängt.

mfg Cardonic
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.

Lunatix

BeitragSo, Aug 13, 2006 9:07
Antworten mit Zitat
Benutzer-Profile anzeigen
kleines beispiel :

Code: [AUSKLAPPEN]

Function InitPak(pak_path$)
stream = ReadFile(pak_path)


3bytes : pak -> als pak identifizieren

Code: [AUSKLAPPEN]

for i = 0 to 2
 sig$ = sig + chr(ReadByte(Stream))
next
if not sig$ = "pak" then Return -1


4bytes(int) : paksize -> ateigrösse der *.pak angeben
4bytes(int) : Headsize -> Grösse der datei ohne body (für banks)
4bytes(int) : Bodysize -> Grösse der datei ohne header (für banks)
*****Ab hier geht der Header "richtig" los*****
Code: [AUSKLAPPEN]

Bank = CreateBank(HeadSize)
For i = 0 to HeadSize-1
  PokeByte bank,ReadByte (Stream)
next

4bytes(int) : anzahl der dateien (PeekInt(bank,pos) : pos = pos + 4)
**Alle Dateien auflisten**
4bytes(int) : Datei grösse
4bytes(int) : Datei Position in pak datei (für SeekFile)
2bytes(short) : Länge des Dateinamen (Len)
x Bytes : Ascii zeichen des Dateinamen (For i = 0 to Len_FileName-1)


Code: [AUSKLAPPEN]

For i = 0 to DateiAnzahl-1

 File_Size = PeekInt(bank,pos) : pos = pos + 4
 File_Pos = PeekInt(bank,pos) : pos = pos + 4
 Len_FName = PeekShort(bank,pos) : pos = pos + 4
 For i = 0 to Len_Fname-1
   byte = peekbyte(bank,pos)
   File_Name$ = File_Name + chr(byte)
   pos = pos + 1
 next
 F.TPakFile = new TPakFile
 F\size = File_Size
 F\Pos = File_Pos
 F\Name$ = File_Name$
 F\PakFile$ = Pak_Path$
next


****END OF HEADER***
Code: [AUSKLAPPEN]

closefile (stream)

P.TPakStream = new TPakStream
P\id = Handle(p)
P\path$ = pak_path$

return P\id

End Function


So, nun haben wir alle Informationen und können beliebig eine oder alle dateien Entpacken oder sogar direkt vom pak stream auslesen und laden.

Code: [AUSKLAPPEN]


Image = LoadImage(LoadFile(pak00,"bilder/bild.bmp","pak00"))

Function LoadFile$(pakID,path$,FileTo$)  ;PakID wäre der wert, der bei InitPak zurückgegeben wird

 path = Replace(path,"/","\") ; für Dateinamen-Vergleiche "/" slashes mit "\" ersetzen

 For P.TPakStream = each TPakStream
  if P\id = pakID
   For T.TPakFile = each TPakFile
     if T\pakFile = P\path
       if lower(T\Name) = lower(path)
         Stream = readFile(P\path)
         StreamTo = WriteDirFile(FileTo+path) ;<- datei mit dirs schreiben (siehe unten)
         Seekfile Stream,T\Pos
         For i = 0 to T\Size-1
          byte = ReadByte(Stream)
          ;Hier könnte man das byte noch decodieren
          WriteByte StreamTo,byte
         next
       endif
     endif
   next
  endif
 next

return FileTo+path

end function

Function WriteDirFile(file$)
   For i = 1 To Len(File)
      z$ = Mid(File,i,1)
      If z="/" Or z="\"
         If FileType (dir+DirName$) <> 2
            CreateDir (dir+DirName)
         EndIf
      EndIf
      DirName$ = DirName + z
   Next
   f = WriteFile (file)
   Return f
end function




umpf. Sagte zwar eigendlich kurz aber egal ^^
So könnte (oder ist) eine Pak datei aufgebaut, kann man noch beliebig mit passwort im header oder passwort für jede datei etc. ausbauen...

MFG JP
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

TheShadow

Moderator

BeitragSo, Aug 13, 2006 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ich denke mal du machst ein eigenes prog dafür.

du verschlüsselst die datei und machst neue dateiendung (etwa *.enc für encrypted)

wenn du Enc-Datei öffnest, dann wird die Datei temporär entschlüsselt und mit richtiger Dateiendung gespeichert. Dann läst du diese TMP-Datei mit Standardprog öffnen... nach einem Klick auf MSG-Box wird die Datei gelöscht (nach dem der Viewer geschlossen wurde)

In deinem Spiel mußt du einen ähnlichen loader für enc-Dateien schreiben...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group