Passwort an generierter Zip-Datei erstellen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Passwort an generierter Zip-Datei erstellen?

    Moin,

    ich hab das Problem das ich online mittels PHP eine Zip-Datei erstelle, die aber nicht auf dem Server abgelegt wird. Sprich sie wird während des Abrufs generiert, packt die Daten zusammen und wird sofort als Download angepriesen.
    Wie kann ich es machen, das bevor es halt zum Download kommt, diese Datei (mittels Flag, Funktion oder Routine) noch nen Passwort versehen bekommt?? Sprich so das der User das File zwar sofort downloaden kann, aber eben halt wenn er gedownloadet hat, das Passwort vorher eingeben muss. Da ich ja vorher auch die Kompressionsstufe, Kommentar etc. voreinstellen kann, wäre es natürlich super, wenn ich auch vorher halt dem Archiv nen Passwort mitgeben könnte.

    Hoffe mal ich hab mich nicht zu umständlich ausgedrückt.
    Vielen vielen Dank für hilfreiche Antworten, Links oder Codeschnipsel.

    Grüsse Murray
    :-)

  • #2
    moin
    hab ebend die suche genommen und dies könnte dir weiterhelfen
    http://www.it-development.de/forum/s...ight=zip+class
    mfg
    kai

    Kommentar


    • #3
      leider nicht wirklich, da es sich hierbei nur um eine Class handelt, die Zip-Files generiert, aber auch dort in der Class gibt es keinerlei Möglichkeit bzw. Routine wie ich dem Zipfile nun auch noch während des Generierungsprozesses nen Passwort vergeben kann.

      Trotzdem vielen Dank für die Antwort, hoffe das noch weitere folgen.

      Grüsse Murray

      Kommentar


      • #4
        danach hatte ich nicht geguckt aber ich weis das es hier 2 stück im forum gibt bei den codeschnizteln

        Kommentar


        • #5
          Hallo

          Willst Du das ganze auf linux machen? Auf windoof gäbs da AFAIK die möglichkeit das ganze über die command line zu lösen... habs aber no nie getestet..

          http://www.winzip.com/prodpagecl.htm
          _____________
          Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
          [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

          Kommentar


          • #6
            unter linux kann man auch die command-line nutzen. und zip ist i.d.r. auch auf jedem linux drauf. (muss aber nicht)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Hier im Forum wirst du keine Klasse finden, die das kann... (ausnahmsweise)

              Mit PHP direkt ist mir da auch keine Lösung bekannt. Aber die Commandline-Methode klingt sehr zuversichtlich...

              Kommentar


              • #8
                ... und dazu habe ich einen code-schnipsel mal gepostet. ;-)

                die erweiterung um ein password überlasse ich natürlich dir. :-p
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Würde das in etwa so aussehen?

                  PHP-Code:
                  function compress()
                          {
                              
                  $fp popen('/usr/bin/zip -'.$this->_level.'j '.$this->_path.$this->_zip.' '.$this->_path.'* -eMeinPassort''w');
                              if (
                  $fp)
                              {
                                  
                  pclose($fp);
                                  return 
                  true;
                              }
                              else
                                  return 
                  false;
                          } 
                  _____________
                  Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                  [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                  Kommentar


                  • #10
                    Original geschrieben von Seccho
                    Würde das in etwa so aussehen?
                    probier es aus.. ;-)

                    ach ja... du solltest dir auch mal die anderen parameter ansehen, welche ich verwende, und die du nicht unbedingt benötigen könntest.

                    Code:
                    shell# /usr/bin/zip
                    Copyright (C) 1990-1999 Info-ZIP
                    Type 'zip "-L"' for software license.
                    Zip 2.3 (November 29th 1999). Usage:
                    zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
                      The default action is to add or replace zipfile entries from list, which
                      can include the special name - to compress standard input.
                      If zipfile and list are omitted, zip compresses stdin to stdout.
                      -f   freshen: only changed files  -u   update: only changed or new files
                      -d   delete entries in zipfile    -m   move into zipfile (delete files)
                      -r   recurse into directories     -j   junk (don't record) directory names
                      -0   store only                   -l   convert LF to CR LF (-ll CR LF to LF)
                      -1   compress faster              -9   compress better
                      -q   quiet operation              -v   verbose operation/print version info
                      -c   add one-line comments        -z   add zipfile comment
                      -@   read names from stdin        -o   make zipfile as old as latest entry
                      -x   exclude the following names  -i   include only the following names
                      -F   fix zipfile (-FF try harder) -D   do not add directory entries
                      -A   adjust self-extracting exe   -J   junk zipfile prefix (unzipsfx)
                      -T   test zipfile integrity       -X   eXclude eXtra file attributes
                      -y   store symbolic links as the link instead of the referenced file
                      -R   PKZIP recursion (see manual)
                      -e   encrypt                      -n   don't compress these suffixes
                    Code:
                    shell# man zip (und ein wenig gescrollt)
                           -e     Encrypt the contents of the zip archive using a  password  which
                                  is  entered  on  the terminal in response to a prompt (this will
                                  not be echoed; if standard error is not a  tty,  zip  will  exit
                                  with  an  error).   The  password prompt is repeated to save the
                                  user from typing errors.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Original geschrieben von Abraxax
                      probier es aus.. ;-)
                      Würd ich ja gerne aber kann nicht... muss bisschen arbeiten... und hab keine Linux-Kiste mit zip zur Verfügung...
                      _____________
                      Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                      [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                      Kommentar


                      • #12
                        das soll aber nicht mein problem sein.. :-p
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          OffTopic:
                          Schon klar ... Das klappt so bestimmt... Probier ich mal über die Ostern...
                          _____________
                          Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                          [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            Hier im Forum wirst du keine Klasse finden, die das kann... (ausnahmsweise)

                            Mit PHP direkt ist mir da auch keine Lösung bekannt.
                            Hallo,
                            gibt es mittlerweile schon eine Lösung, mit PHP, eine Passwort geschützte Zip Datei zu erstellen?

                            Gruß
                            Runner

                            Kommentar


                            • #15
                              Das würde mich auch brennend Interessieren, ob es möglich ist eine Passwort geschützte zip Datei zu erstellen...

                              Möglich ist es bestimmt, nur wie? Werde da nicht so ganz schlau draus
                              http://www.pkware.com/company/standa...te/appnote.txt
                              Decryption
                              ----------

                              PKWARE is grateful to Mr. Roger Schlafly for his expert contribution
                              towards the development of PKWARE’s traditional encryption.

                              PKZIP encrypts the compressed data stream. Encrypted files must
                              be decrypted before they can be extracted.

                              Each encrypted file has an extra 12 bytes stored at the start of
                              the data area defining the encryption header for that file. The
                              encryption header is originally set to random values, and then
                              itself encrypted, using three, 32-bit keys. The key values are
                              initialized using the supplied encryption password. After each byte
                              is encrypted, the keys are then updated using pseudo-random number
                              generation techniques in combination with the same CRC-32 algorithm
                              used in PKZIP and described elsewhere in this document.

                              The following is the basic steps required to decrypt a file:

                              1) Initialize the three 32-bit keys with the password.
                              2) Read and decrypt the 12-byte encryption header, further
                              initializing the encryption keys.
                              3) Read and decrypt the compressed data stream using the
                              encryption keys.

                              Step 1 - Initializing the encryption keys
                              -----------------------------------------

                              Key(0) <- 305419896
                              Key(1) <- 591751049
                              Key(2) <- 878082192

                              loop for i <- 0 to length(password)-1
                              update_keys(password(i))
                              end loop

                              Where update_keys() is defined as:

                              update_keys(char):
                              Key(0) <- crc32(key(0),char)
                              Key(1) <- Key(1) + (Key(0) & 000000ffH)
                              Key(1) <- Key(1) * 134775813 + 1
                              Key(2) <- crc32(key(2),key(1) >> 24)
                              end update_keys

                              Where crc32(old_crc,char) is a routine that given a CRC value and a
                              character, returns an updated CRC value after applying the CRC-32
                              algorithm described elsewhere in this document.

                              Step 2 - Decrypting the encryption header
                              -----------------------------------------

                              The purpose of this step is to further initialize the encryption
                              keys, based on random data, to render a plaintext attack on the
                              data ineffective.

                              Read the 12-byte encryption header into Buffer, in locations
                              Buffer(0) thru Buffer(11).

                              loop for i <- 0 to 11
                              C <- buffer(i) ^ decrypt_byte()
                              update_keys(C)
                              buffer(i) <- C
                              end loop

                              Where decrypt_byte() is defined as:

                              unsigned char decrypt_byte()
                              local unsigned short temp
                              temp <- Key(2) | 2
                              decrypt_byte <- (temp * (temp ^ 1)) >> 8
                              end decrypt_byte

                              After the header is decrypted, the last 1 or 2 bytes in Buffer
                              should be the high-order word/byte of the CRC for the file being
                              decrypted, stored in Intel low-byte/high-byte order. Versions of
                              PKZIP prior to 2.0 used a 2 byte CRC check; a 1 byte CRC check is
                              used on versions after 2.0. This can be used to test if the password
                              supplied is correct or not.

                              Step 3 - Decrypting the compressed data stream
                              ----------------------------------------------

                              The compressed data stream can be decrypted as follows:

                              loop until done
                              read a character into C
                              Temp <- C ^ decrypt_byte()
                              update_keys(temp)
                              output Temp
                              end loop

                              Kommentar

                              Lädt...
                              X