Verschlüsselung von Dateien mit PHP
Manfred
- php
Hallo!
Ablauf:
------------------------------
Auf einem Root-Server (SuSE Linux 10.1) soll über PHP eine Datei hochgeladen werden. PHP soll die Datei dann verschlüsseln und in einen anderen Ordner speichern und das unverschlüsselte Original löschen.
Wenn die Datei wieder zum Download angefragt wird, soll der User ein Passwort eingeben, woraufhin PHP die Datei entschlüsselt und überträgt.
------------------------------
Frage:
------------------------------
Kennt jemand eine Möglichkeit, Dateien in PHP zu verschlüsseln, so daß man nicht mit exec, shell_exec usw. (kurz, den Funktionen unter http://www.php.net/manual/de/ref.exec.php) arbeiten muss?
Ich bin auf der Suche nach vernünftigen Tutorials dazu, wie ein Verschlüsselungsablauf wie oben beschrieben umgesetzt werden kann, ohne dass mit "externen" Programmen wie GnuPG und ähnlichen gearbeitet werden muss.
Das muss doch auch intern mit mcrypt oder so gehen?
------------------------------
Das Problem dabei:
------------------------------
Noch eine Anmerkung zu den Dateien. Es sollen unter anderem auch .exe-Dateien drunter sein, wenn ich die auslese und Plaintext encrypte, zerschießt es bestimmt die Datei, oder? Ich bin jetzt seit mehreren Tagen auf der Suche nach einer Lösung, aber bis jetzt habe zu dem Thema "Mit PHP Dateien verschlüsseln" nix außer über eine Lösung mit GPG gefunden.
------------------------------
Viele Grüße,
Manfred
Hallo,
Auf einem Root-Server (SuSE Linux 10.1) soll über PHP eine Datei hochgeladen werden. PHP soll die Datei dann verschlüsseln und in einen anderen Ordner speichern und das unverschlüsselte Original löschen.
Wenn die Datei wieder zum Download angefragt wird, soll der User ...
Mir ist nicht ganz klar, _warum_ die Dateien auf dem Server verschlüsselt sein müssen. Würde es nicht reichen den Download zu begrenzen? Wenn kein Unbefugter die Dateien downloaden kann, ist es doch eigentlich egal, ob sie verschlüsselt oder klartext auf ihren Download warten, oder worauf willst Du hinaus?
In dem Fall wäre das per .htaccess recht einfach zu erledigen.
netten Tag
^da Powl
Hallo,
Mir ist nicht ganz klar, _warum_ die Dateien auf dem Server verschlüsselt sein müssen. Würde es nicht reichen den Download zu begrenzen? Wenn kein Unbefugter die Dateien downloaden kann, ist es doch eigentlich egal, ob sie verschlüsselt oder klartext auf ihren Download warten, oder worauf willst Du hinaus?
In dem Fall wäre das per .htaccess recht einfach zu erledigen.
sagen wir mal, 1. aus der puren Möglichkeit heraus und 2. um die Dateien selbst vor dem Provider des Root-Servers zu sichern. Ich hatte z.B. mal einen Root-Server bei 1und1 und habe eines Tages einen Anruf von 1und1 bekommen, er wäre grade auf meinem Server und würde die Scripte durchsehen, da wäre eines was noch einen Fehler hat, nur so zur Info. Da sitzt man erstmal da und denkt sich ob man jetzt lachen, weinen oder den Rechtsanwalt anrufen soll.
Eine Sicherung mit .htaccess ist bei weitem nicht ausreichend, es geht auch nicht primär darum, Dateien anderen Personen zur Verfügung zu stellen, sondern die Dateien komfortabel mit PHP über die eigene Website sicher ablegen zu können, um woanders wieder schnell darauf zugreifen zu können, ohne erst in der Shell rumwerkeln zu müssen und Keys durch die Gegend schleppen zu müssen.
Viele Grüße,
Manfred
Hallo,
Ok, das ist ein Grund. Auch wenn das nicht 100% sicher ist, wenn Du die Dateien in einem zip passwortgeschützt verpackst? Hält zumindest den "mal schauen" fern.
netten Tag
^da Powl
Ich grüsse den Cosmos,
Ich hatte z.B. mal einen Root-Server bei 1und1 und habe eines Tages einen Anruf von 1und1 bekommen, er wäre grade auf meinem Server und würde die Scripte durchsehen,
Hast du das Rootpasswort geändert? Wenn nein, gehörst du erschossen. Wenn ja, hat dieser Techniker einen illegalen Einbruch in deinen Server fabriziert, den ich persönlich zur Anzeige bringen würde.
Zu deinem Problem: Es gibt irgendwo bei Sourceforge ein PHP-Projekt, das Dateien zippen kann incl. Passwort. Allerdings hab ich keinen Link greifbar, da ich ein Packscript benutze, das nicht mit Passwörtern arbeitet.
Möge das "Self" mit euch sein
Moin!
sagen wir mal, 1. aus der puren Möglichkeit heraus und 2. um die Dateien selbst vor dem Provider des Root-Servers zu sichern. Ich hatte z.B. mal einen Root-Server bei 1und1 und habe eines Tages einen Anruf von 1und1 bekommen, er wäre grade auf meinem Server und würde die Scripte durchsehen, da wäre eines was noch einen Fehler hat, nur so zur Info. Da sitzt man erstmal da und denkt sich ob man jetzt lachen, weinen oder den Rechtsanwalt anrufen soll.
Wenn der Provider auf deinen Server kann, dann kann er auch sehen, mit welchem Passwort du die Datei verschlüsselt hast. Und wieder entschlüsselst. Oder er kann die Abfrage der Datei abfangen und dabei das Passwort ermitteln.
Wenn du nicht willst, dass man die Dateiinhalte auf dem Server ermitteln kann, darfst du schon den Dateitransfer nur verschlüsselt durchführen.
- Sven Rautenberg
echo $begrüßung;
Kennt jemand eine Möglichkeit, Dateien in PHP zu verschlüsseln, so daß man nicht mit exec, shell_exec usw. (kurz, den Funktionen unter http://www.php.net/manual/de/ref.exec.php) arbeiten muss?
Das muss doch auch intern mit mcrypt oder so gehen?
mcrypt_generic() misst dem Zeichen \0 eine besondere Bedeutung zu. Das ist schlecht, da dieses Zeichen Bestandteil der Daten sein kann. Als Abhilfe fällt mir ein vorheriges base64_encode() ein, so wie es auch dieser Userkommentar vorschlägt.
echo "$verabschiedung $name";