Ankündigung

Einklappen
Keine Ankündigung bisher.

Große Dateien mit PHP hashen und verschlüsseln?

Einklappen

Neue Werbung 2019

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

  • Große Dateien mit PHP hashen und verschlüsseln?

    Hallo,

    ich lade per Webbrowser Dateien auf meinen Webspace hoch. Diese sind bis zu 200MB groß. Nach dem Upload soll die Integrität der Files geprüft werden, indem ich einen SHA-256 Hash errechnen lasse. Anschließend wird die Datei verschlüsselt (AES-256) und auf ein Backup-System verschoben.
    Das Ganze (Hashing und Verschlüsselung) soll möglichst schnell berechnet werden und wenig Ressourcen verbrauchen.

    Würdet Ihr das mit PHP realisieren?
    Auf dem Server stehen folgende Scriptsprachen zur Verfügung: PHP 7.2, Ruby und Python.
    Leider ist kein Zugriff auf Systemprogramme mittels system() oder exec() möglich.

    Danke schon mal

  • #2
    Hallo danibert., wilkommen im Forum.
    Es gibt regeln bei Posts im Bereich Forgeschritten, welche Du bitte in Zukunft beachtest.
    Das Ganze (Hashing und Verschlüsselung) soll möglichst schnell berechnet werden und wenig Ressourcen verbrauchen.
    Viel CPU alles im Ram also so Spielzeuge:
    https://www.gigabyte.com/Press/News/1634
    clustern.

    Kommentar


    • #3
      Würdet Ihr das mit PHP realisieren?
      Ich würde das einfach mal mit den 3 Sprachen ausprobieren und die Ergebnisse mit den Anforderungen abgleichen.
      [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
      [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

      Kommentar


      • #4
        Bitte beachten: Inserate, Konzepte und Meinungsumfragen

        MOD: Verschoben von PHP-Fortgeschritten
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Zitat von danibert Beitrag anzeigen
          Würdet Ihr das mit PHP realisieren?
          Antwort aus einem Python-Forum: „Mit Python!“
          Antwort aus einem Ruby-Forum: „Mit Ruby!“
          usw.

          Mach erst mal und dann zeige Code dazu wenn du ein Problem siehst, ansonsten bitte hier weiterlesen.




          Kommentar


          • #6
            Wie bereits gesagt wurde, einfach ausprobieren, dann weißt du es. Ich würde aber keine relevanten Unterschiede erwarten.

            Aber das ganze klingt so, als würde es schon zahlreiche fertige Software für so einen Anwendungsfall geben, und nichts, was man selber programmieren muss.

            Kommentar


            • #7
              Zitat von danibert Beitrag anzeigen
              Das Ganze (Hashing und Verschlüsselung) soll möglichst schnell berechnet werden und wenig Ressourcen verbrauchen.
              Das sind keine Kriterien nach denen man eine definitive Aussage treffen kann... "möglichst schnell" und "wenig Resourcen" - im Vergleich zu WAS?

              Ich würde erstmal dafür sorgen das es funktioniert und stabil läuft. Warum muss es überhaupt "schnell" sein? Ein Upload von 200 MB dauert, je nach Leitung, halt auch mal ein Weilchen, da fällt ein anschliessendes Hashing nicht mehr ins Gewicht, selbst wenn es 5 statt 2 Sekunden dauert. Jeder User kann damit leben, nach einem 20 minütigen Upload noch weitere 5 Sekunden auf "Post processing" zu warten... meine Meinung.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von danibert Beitrag anzeigen
                ich lade per Webbrowser Dateien auf meinen Webspace hoch. Diese sind bis zu 200MB groß. Nach dem Upload soll die Integrität der Files geprüft werden, indem ich einen SHA-256 Hash errechnen lasse.
                Was ist falsch an md5_file?

                Zitat von danibert Beitrag anzeigen
                Anschließend wird die Datei verschlüsselt (AES-256) und auf ein Backup-System verschoben.
                Naja, PHP ist für sowas eher ungeeignet. Java wäre hier ideal, da es da einen DigestOutputStream und einen CipherOutputStream gibt (für AES256 gff. Bouncycastle benötigt, wegen US-Gesetze). Da du aber kein Java nutzen kannst, nimm Ruby, denn da gibt es ähnliche Funktionalität: https://gist.github.com/byu/99651 (vorausgesetzt du kannst diese Gemse installieren)
                Python: Keine Ahnung.

                Kommentar


                • #9
                  Naja, PHP ist für sowas eher ungeeignet.
                  Warum "eher ungeeignet"?
                  [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                  [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                  Kommentar


                  • #10
                    Stream encrytion decorator in php, haslib in python ist doch sowas oder nicht?

                    Kommentar


                    • #11
                      Zitat von VPh Beitrag anzeigen
                      Warum "eher ungeeignet"?
                      Weil es (meines Wissens nach) für php keine gescheiten Bibliotheken für sowas gibt. Alles was du mit Bordmitteln machst, verbraucht mindestens so viel Arbeitsspeicher, wie die Datei groß ist, um die es geht. Bei Java geht der zum Programm zusätzliche Arbeitsspeicherverbrauch gegen 0.
                      Und mit diesen Ruby-Gems stehen die grundsätzlichen Mechanismen hinter der Java-Lösung für zu-Fuß bereit.

                      Zitat von tomBuilder Beitrag anzeigen
                      Stream encrytion decorator in php
                      Klingt interessant...

                      Kommentar


                      • #12
                        Ist dies nicht eine Lösung
                        https://github.com/jeskew/php-encrypted-streams

                        Kommentar


                        • #13
                          Zitat von protestix Beitrag anzeigen
                          Exakt das meinte ich

                          Kommentar


                          • #14
                            Fehlt ja nur noch der Zuspruch von rkr, dann können wir das Kapitel auch beiseite legen.

                            Kommentar


                            • #15
                              Zitat von protestix Beitrag anzeigen
                              Fehlt ja nur noch der Zuspruch von rkr, dann können wir das Kapitel auch beiseite legen.
                              Wieso mein Zuspruch?
                              Sieht nach einer funktionierenden Lösung aus. Keine Ahnung wie performant das tatsächlich ist, sieht aber nach c-layer in der Hauptsache aus ...

                              Kommentar

                              Lädt...
                              X