Ankündigung

Einklappen
Keine Ankündigung bisher.

String mittels Hash korrekt lesbar machen?

Einklappen

Neue Werbung 2019

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

  • String mittels Hash korrekt lesbar machen?

    Hallo,

    ich habe folgendes Problem.

    Dateiname: id-3adföaäiuenü.eisafdn-iead.

    Also ihr seht ein String mit Sonderzeichen, Umlauten, etc.

    Gibts ne Möglichkeit diesen Namen irgendwie eindeutig zu machen, sodass das ganze auch als Dateiname verwendet werden kann?

    id-3adföaäiuenü.eisafdn-iead..txt <---ist ja als Datei problematisch mit Umlauten, etc.
    safienisafdnasfdasfdasfd.txt <-- Sowas soll bei rauskommen.

    Ich suche also ne Funktion mit der ich einen String so umwandeln kann, dass er immernoch eindeutig ist, aber Sonderzeichen, etc. alle umgewandelt werden.

    Meine Idee war: md5();

    Aber das wäre in meinen Augen ja mit Panzern auf Spatzen geschossen. Gibts da noch was einfacheres?
    Es müsste allerdings sowohl von php, als auch javascript unterstützt werden. Denn php erstellt die Datei und javascript liest Sie später. (das Script mit Lesen, Schreiben, etc. läuft auch schon korrekt)

    Danke für eure Tipps


  • #2
    Zitat von BartTheDevil89 Beitrag anzeigen
    id-3adföaäiuenü.eisafdn-iead..txt <---ist ja als Datei problematisch mit Umlauten, etc.
    safienisafdnasfdöiasfd.txt <-- Sowas soll bei rauskommen.
    Weil Umlaute problematisch sind, soll also etwas herauskommen, was ein ö enthält ...

    Kommentar


    • #3
      Nimm doch nen Timestamp als Dateinamen (z.B. wenn Du die Datei erstellst).

      Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen
        Weil Umlaute problematisch sind, soll also etwas herauskommen, was ein ö enthält ...
        Oh sorry.... War nur schnell was draufgetippt.

        Zitat von wolf29 Beitrag anzeigen
        Nimm doch nen Timestamp als Dateinamen (z.B. wenn Du die Datei erstellst).

        Wolf29
        Aber das sind 2 unterschiedliche Systeme. Das eine arbeitet mit PHP (das schreibt) und eins mit Javascript (das liest).
        Und das zweite System kennt ja nicht den Timestamp des ersten. Beide kennen aber den orignal String. Und demnach muss ich den so abwandeln, dass er als Dateiname verwendet werden kann und gleichzeitig aber noch eindeutig ist. Denn bisher läuft das so:

        PHP:
        Erstellt die Datei id-3adföaäiuenü.eisafdn-iead..txt

        Javascript:
        Liest die Datei id-3adföaäiuenü.eisafdn-iead..txt

        Also das funktioniert schon, aber bei manchen Strings bekomm ich eben Probleme mit den Dateinamen.

        Kommentar


        • #5
          Zitat von BartTheDevil89 Beitrag anzeigen
          Aber das sind 2 unterschiedliche Systeme. Das eine arbeitet mit PHP (das schreibt) und eins mit Javascript (das liest).
          Und das zweite System kennt ja nicht den Timestamp des ersten.
          Egal was das PHP-Script aus dem Dateinamen macht - du musst ihn doch irgendwie an das JavaScript übermitteln, damit dieses überhaupt weiss, was es lesen soll ...?

          Kommentar


          • #6
            Zitat von ChrisB Beitrag anzeigen
            Egal was das PHP-Script aus dem Dateinamen macht - du musst ihn doch irgendwie an das JavaScript übermitteln, damit dieses überhaupt weiss, was es lesen soll ...?
            Ja nein...beide kennen den String mit dem Namen. Deswegen können beide bisher einfach so arbeiten:
            PHP: String.txt schreiben

            Javascript: String.txt lesen
            Also der String ist beiden bekannt.

            Deswegen würde ja md5() auch funktionieren:
            PHP: md5(String).txt schreiben

            Javascript md5(String).txt lesen
            Aber md5() ist in meinen Augen viel zu aufwendig. Gibts da noch ne schnellere/einfachere Hash-Methode?

            Kommentar


            • #7
              Aber das wäre in meinen Augen ja mit Panzern auf Spatzen geschossen.
              Dafür ist es auch eindeutig, wärend ne dumme Übersetzung aus
              abü und öäabÜü immer ab macht. Ansonsten überleg halt, wie DU den wert übergeben kannst oder ob Du den Namen nicht schon früher umwandeln kannst.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Zitat von BartTheDevil89 Beitrag anzeigen
                Also der String ist beiden bekannt.
                Wie ist denn die Verarbeitungsreihenfolge?

                Wäre es nicht möglich (und simpler), dem JavaScript einfach durch PHP mitteilen zu lassen, in was der Dateiname geändert wurde?

                Aber md5() ist in meinen Augen viel zu aufwendig.
                Serverseitig kaum nennenswerter Aufwand.

                Wenn man auch noch den JS-Code einer MD5-Implementierung mitschleppen muss, sieht das natürlich schon anders aus.

                Gibts da noch ne schnellere/einfachere Hash-Methode?
                Möglich, aber das geht dann vermutlich zu Lasten der Eindeutigkeit - MD5 ist da noch ein ganz guter Kompromiss.

                Du kannst natürlich auch einfach mit einem regulären Ausdruck alle Sonderzeichen aus dem Dateinamen entfernen. Dann musst du aber selber Vorkehrungen für den Fall treffen, dass zwei Eingabedaten den selben Namen ergeben - bei Verwendung von MD5 halte ich die Wahrscheinlichkeit dafür für gering genug, um daran weniger Gedanken zu verschwenden.

                Kommentar


                • #9
                  Wenn man auch noch den JS-Code einer MD5-Implementierung mitschleppen muss, sieht das natürlich schon anders aus.
                  Achwas, das sind unkomprimiert knapp 200 Zeilen Javascript code. Also geschätzt vielleicht 8kb, komprimiert bestimmt 4kb. Zum Vergleich, jqueryui hat komprimiert 210kb, extjs nochmal das 3fache und ist immer noch richtig fix.

                  Wobei es schon Sinn macht, den Namen serverseitig zu generieren und über nen Request auszutauschen.
                  I like cooking my family and my pets.
                  Use commas. Don't be a psycho.
                  Blog - CoverflowJS

                  Kommentar


                  • #10
                    Zitat von rudygotya Beitrag anzeigen
                    Wobei es schon Sinn macht, den Namen serverseitig zu generieren und über nen Request auszutauschen.
                    Guten morgen...das Problem ist, dass die Datei serverseitig erstellt wird. Das Javascript wird dann in ner Firefox Extension verwendet, sodass also die Datei dann vom Server abgerufen werden kann. Und ich kann ja schlecht wenn ich aufm Server 1 Datei erstelle diese Info an 1.000+ Verwender dieser Extension irgendwie übergeben.
                    Da aber beide den String kennen, ist das die einfachste Lösung. Also ihr meint außer md5() gibts nichts einfacheres?

                    Kommentar


                    • #11
                      Da aber beide den String kennen,
                      Keine AHnung, was das heissen mag.
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Zitat von nikosch Beitrag anzeigen
                        Keine AHnung, was das heissen mag.

                        Ich meine sowohl PHP, als auch Javascript kennen diesen String:
                        id-3adföaäiuenü.eisafdn-iead

                        Also der Server(php) kennt das:
                        id-3adföaäiuenü.eisafdn-iead

                        Und die Firefox Extension(Javascript) kennt das:
                        id-3adföaäiuenü.eisafdn-iead

                        Damit kann ich die Datei also erstellen von PHP:
                        id-3adföaäiuenü.eisafdn-iead.txt

                        Und Javascript liest einfach:
                        id-3adföaäiuenü.eisafdn-iead.txt
                        Das läuft auch alles. Aber die Sonderzeichen sind das Problem. Denn das sollte ja nicht in Dateinamen vorkommen. Deswegen eben die Idee de String einfach nochmal durch md5() oder ähnliches jagen um dann sowas zu bekommen:

                        Also der Server(php) kennt das:
                        id-3adföaäiuenü.eisafdn-iead

                        Und die Firefox Extension(Javascript) kennt das:
                        id-3adföaäiuenü.eisafdn-iead

                        Damit kann ich die Datei also erstellen von PHP:
                        md5(id-3adföaäiuenü.eisafdn-iead).txt

                        Und Javascript liest einfach:
                        md5(id-3adföaäiuenü.eisafdn-iead).txt
                        Aber die Frage ist, obs noch was einfaches gibt außer md5 um die Sonderzeichen rauszubekommen und den Namen aber trotzdem noch eindeutig zu haben. (weil klar könnte die Sonderzeichen auch einfach rausschneiden, aber dann wäre das ja nichtmehr eindeutig)

                        Kommentar


                        • #13
                          Ich meine sowohl PHP, als auch Javascript kennen diesen String:
                          Ich bin nicht ganz blöd. Wenn es aber einen Weg gibt, diesen String an beide Komponenten auszuliefern, sehe ich das Problem in diesem Thread nicht. Dann generierst DU halt ein passenden String, bevor PHP und JS diesen erhalten.
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            Zitat von nikosch Beitrag anzeigen
                            Ich bin nicht ganz blöd. Wenn es aber einen Weg gibt, diesen String an beide Komponenten auszuliefern, sehe ich das Problem in diesem Thread nicht. Dann generierst DU halt ein passenden String, bevor PHP und JS diesen erhalten.
                            Die erhalten den nicht von irgendwo, sondern ermitteln den selbst. Beispiel:

                            eine Website ermittelt den String "sadifnelö", "sadüpawe", "üpasfd", "pasfd" und erstellt dafür die 4 txt-Dateien.

                            Jetzt ermittelt die Firefox-Erweiterung den String "üpasfd" schaut, ob die Datei auf dem Server verfügbar ist.
                            Das funktioniert auch alles...und der String wird immer neu ermitteln ovn der Firefox-Erweiterung.

                            Kommentar


                            • #15
                              Ich habe das Gefühl, dass Du entweder nicht zuhörst, oder nicht nachdenkst. Bin raus..
                              --

                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                              --

                              Kommentar

                              Lädt...
                              X