[PHP] Passwort-Hash will nicht ganz

  • hi,
    ich wollte gerade einen passwort-hash von pawn in php umschreiben, aber bekomme jetzt für fast jede zeile einen error,
    dass ich nicht durch null teilen darf^^


    hier mal beide codes:


    pawn:

    stock passwordHash(buf[]) {
    new length=strlen(buf);
    new a;


    new s1 = 2;
    new s2 = 3;
    new s3 = 5;
    new s4 = 7;
    new s5 = 9;
    new s6 = 11;
    new s7 = 13;
    new s8 = 17;
    new s9 = 7919;
    new s10 = 7907;
    new s11 = 7901;
    new s12 = 7883;
    new s13 = 7879;
    new s14 = 7877;
    new s15 = 7873;
    new s16 = 7867;


    for (a=0; a<length; a++)
    {
    s1 = (s1 + buf[a]) * 65521;
    s2 = (s2 / s1 + buf[a]) * 65521;
    s3 = (s3 * s2 / s1 + buf[a]) * 65521;
    s4 = (s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s5 = (s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s6 = (s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s7 = (s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s8 = (s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s9 = (s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s10 = (s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s11 = (s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s12 = (s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s13 = (s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s14 = (s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s15 = (s15 - s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    s16 = (s16 + s15 - s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
    }
    return (s16 << 128) * s1 * s2 * s3 * s4 * s5 * s6 * s7 + s8 + s9 + s10 + s11 + s12 + s13 + s14 + s15 + s16;
    }


    und hier der php code:


    vlt kann mir ja jemand weiterhelfen.


    danke schonmal


    mfg Marshall

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

    Einmal editiert, zuletzt von [XfS]Marshall ()

  • Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • die variablen s1 usw. sind intergers...
    also daran kann es nicht liegen, v.a. weil jetzt noch genau der gleiche fehler auftritt...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • php sollte die Datentypen direkt beim zuweisen übernehmen wobei php normal keine festen Datentypen besitzt
    da sie ja je nach Operator und Kombination Automatisch abgeändert werden sollten .
    zeig mal die Fehler her...

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • das ist alles, was ich angezeigt bekomme:

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • Ich denke es liegt daran das die Zeichen in Integer gewandelt werden müssten
    versuch mal die Funktion "ord"


    also


    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()

  • ok versuche ich mal, aber an welcher stelle soll ich ord() ausführen?
    es wandelt ja zeichen in zahlen um, aber was soll umgewandelt werden, bzw. an welcher stelle?

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...

  • Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • jetzt kommt immerhin kein error mehr, aber es kommt das falsche ergebnis raus...


    eigentlich sollte bei "test" -1229343407 rauskommen, aber es kommt 1.4934126246502E+61 raus...

    Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.


    _____________________________________________________________________________


    Einige Filterscripts von mir...