Lokale Dateien und Dateien auf FTP Server vergleichen

  • Hey,
    ich würde gerne einen Updater schreiben.
    Dafür hab ich auf dem Server ein PHPScript geschrieben, das mir SHA1 Hashs von den Dateien liefert.
    Die kann ich ja mit den Hashs der lokalen Dateien vergleichen.

    Allerdings sind die Dateien zum Teil so groß, dass ein kompletter Hash der Datei zu lange dauert. Deshalb hab ich nur das 1. MB gehasht.
    Theoretisch kann es aber passieren, dass sich nach dem 1MB ein Zeichen verändert.
    Das wird dann ja weder vom Hash noch von der Dateigröße "erkannt".

    Eigentlich bleiben mir da nicht mehr viele Möglichkeiten, oder hat jemand eine bessere Idee?

    Danke
    anno2008 :)

  • Hi

    nun das ist in der Tat ein Problem, du könntest vllt weiterhin nur das eine MB hashen aber nimm doch die Bytes nicht alle vom Anfang der Datei, sondern rechne dir mit der Größe der Datei aus jedes wie vielte Byte du brauchst um auf 1 MB zu kommen und dann hashe nur diese Bytes, immer davon ausgehend dass die Größe der zu vergleichenden Dateien gleich ist, aber wenn sie das nicht wäre bräuchte man ja auch keinen Hash um Änderungen festzustellen.

    Oder vergleiche erstmal die Timestamps bevor du überhaut hashst.

    mfg Redclaw

  • leg doch eine datei auf den server , wo eine art "versionsnummer" drinnensteht, und wenn jemand die datei verändert, ändert er auch diese datei, mit der nummer.
    im updater steht dann auch eine nummer drinnen, und und die vergleichst du dann mit der nummer, welche auf dem server liegt

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner