Ankündigung

Einklappen
Keine Ankündigung bisher.

Passwort verschlüsseln

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Passwort verschlüsseln

    Guten Tag liebe Community,

    ich hatte folgenden c++ code:
    Code:
    public Encrypt(string[])
    {
      for(new x=0; x < strlen(string); x++)
        {
          string[x] += (3^x) * (x % 15);
          if(string[x] > (0xff))
          {
            string[x] -= 256;
          }
        }
      return 1;
    }
    Diesen habe ich dann mit Hilfe anderen in PHP umgeschrieben:
    PHP-Code:
    function encrypt($string) {
        foreach (
    str_split($string) as $x => $char) {
            
    $string[$x] = chr(0xff & (ord($char) + ($x) * ($x 15)));
        }
        return 
    $string;

    Es gibt jetzt allerdings ein komisches Problem. Er wandelt alle Zahlen egal wie lang richtig um (zum Beispiel 1234567. Bei Buchstaben ab einer Länge von 5 Zeichen gibt es allerdings ein Problem. Er wandelt nicht alles um. Ich habe es mal mit abcde versucht.
    Es sollte rauskommen:
    Code:
    aded
    Es ist aber folgendes rausgekommen:
    Code:
    aded
    Ich kann mir das irgendwie nicht erklären. Kann der string nur 4 Buchstaben speichern? Kann ja auch nicht sein.

    netmario


  • #2
    Lass dir mal den Wert jedes einzelnen Zeichens des Ergebnisses als Hex-Zahl ausgeben ... danach bist du schlauer.

    Kommentar


    • #3
      So ich hab es jetzt als Hex ausgeben lassen und es fehlt irgendwie ein Teil, wieso auch immer.
      Hier das was rauskommen sollte:
      Code:
      61646564c281
      Und das was rausgekommen ist:
      Code:
      6164656481
      Vielen Dank!
      netmario

      Kommentar


      • #4
        Zitat von netmario Beitrag anzeigen
        Hier das was rauskommen sollte:
        Code:
        61646564c281
        Und das was rausgekommen ist:
        Code:
        6164656481
        Nun, wie man sieht, fehlt da einfach der Bytewert c2.

        Ist auch kein großes Wunder, weil die Funktionen chr/ord nur auf ASCII-Zeichen ausgelegt sind, also darauf, mit Zahlenwerten von 0 bis 127 zu arbeiten.

        Da die Stringposition mit in die Berechnung eingeht, kommt deine Formel beim fünften Zeichen über 127 hinaus, wenn die ASCII-Werte der Buchstaben entsprechend groß sind.

        Kommentar


        • #5
          Vielen Dank! Ich weiß leider nicht wie ich das umgehen könnte, hast du zufällig eine Idee, wäre dir sehr dankbar!
          netmario

          Kommentar


          • #6
            Passwort entschlüsseln - Forum: phpforum.de

            Sorry, ich sehe nicht ein, dass Du wie ein Nomade zum nächsten Forum ziehst, nur weil Du nicht gescheit mit den Leuten kommunizieren kannst. Das letzte Posting von phpforum ist genauso für php.de gültig. Ich denke mal, dass Deine Erwartungen hier die gleichen sind. Und "hast du zufällig eine Idee, wäre dir sehr dankbar!" spricht schon eine deutliche Sprache.

            [MOD: Thread geschlossen]
            --

            „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