Python auf PHP

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

  • Python auf PHP

    Hallo,

    Versuche ein Python Script auf PHP umzuschreiben.. Nur leider mach ich irgendwo ein Fehler das ich kein Ergebnis erhalte.

    PYTHON
    Code:
    #!/bin/sh
    import md5
    
    def calCode(imei):
        imeiMD5 = md5.new(imei).digest() # Get binary md5 hash of IMEI number
        unlockCode = ""
        for i in range(0, 8):
            magicalSum = (ord(imeiMD5[i]) + ord(imeiMD5[i+8])) & 0xFF # Get last byte of two md5 byte sum
            unlockCode += str((magicalSum * 9) / 255)
        return unlockCode
    
    def imeiCorrect(imei):
        if (len(imei) != 15) or (not imei.isdigit()):
            return False
        else:
            return True
    
    if __name__ == '__main__':
        imei = raw_input('IMEI: ')
        if imeiCorrect(imei):
            print 'NCK:', calCode(imei)
        else:
            print 'Incorrect IMEI!'
    PHP umgeschrieben
    PHP-Code:
    $imei htmlspecialchars($_POST['imei']);

    function 
    calCode($imei)
    {
    $imeiMD5 md5($imei);
    $unlockCode "";
    for(
    $i=0;$i<8;$i++)
    {
    $magicalSum = (ord($imeiMD5[$i]) + ord($imeiMD5[$i+8])) & 0xFF# Get last byte of two md5 byte sum
    $unlockCode += str(($magicalSum 9) / 255);
    }
    return 
    $unlockCode;
    }

    if(
    strlen($imei) == 15){
        
    $imei htmlspecialchars($imei);
        echo 
    "Unlock  "$unlockCode;
    }
    else{
        if(
    $imei 15 && $imei 1) {
            echo 
    "Error : Invalid IMEI";
        }
    }
    echo 
    "
                <form method='post' action=''>
                IMEI : <input type='text' name='imei' maxlength='15'><br>
                <input type='submit' value='do it!'>
                </form>"


  • #2
    Zitat von karabey81 Beitrag anzeigen
    Nur leider mach ich irgendwo ein Fehler das ich kein Ergebnis erhalte.
    Dann betreibe Debugging.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke für den Antwort nur ich bin mit PHP nicht soweit das ich Debugging machen kann.. Allein für die Umschreibung habe ich 3 Wochen gebraucht

      Kommentar


      • #4
        Code:
        imeiMD5 = md5.new(imei).digest() # Get binary md5 hash of IMEI number
        $imeiMD5 = md5($imei);
        PHPs md5 liefert dir den Hash als 32 Zeichen lange HEX-Zahl - wenn du ihn in binärer Form haben willst, wie im Python-Script, dann musst du den zweiten Parameter setzen.

        Code:
        for i in range(0, 8):
        for($i=0;$i<8;$i++)
        Die Python-Schleife dürfte die Werte von 0 bis 8 einschließlich durchlaufen - die PHP-Schleife läuft aber nur von 0 bis 7.


        Das sind erst mal die Sachen, die auf Anhieb ins Auge fallen.

        Wenn du damit noch nicht weiter kommst, dann nenne mal eine Beispiel-IMEI für die Eingabe und zugehöriges Ergebnis.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Danke vielmals.. Werde gleich testen..

          Um zur Ergebnis zu kommen

          IMEI : 123456789012345
          Ergebnis : 01277822

          Kommentar


          • #6
            Ach so, dass du deine Funktion calCode nirgends aufrufst, kommt natürlich noch erschwerend hinzu :-)
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Rufe ich den nicht mit

              echo "Unlock ". $unlockCode;

              Kommentar


              • #8
                Nein. Diese Variable gibt es an der Stelle gar nicht. (error_reporting vernünftig einstellen, dann sagt PHP dir sowas auch.)

                Eine Funktion ruft man idR. über ihren Namen auf.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Yep.. Muss mal weiter experimentieren

                  Undefined variable: unlockCode in /is/htdocs/seite2.php on line 22

                  Man man da habe ich sehr viel Fehler drinnen
                  Zuletzt geändert von karabey81; 18.06.2011, 14:06.

                  Kommentar


                  • #10
                    PHP-Code:
                    function calCode($imei) {  
                      
                    $imeiMD5 str_split(md5($imei), 2);  
                      
                    $unlockCode '';  
                      for(
                    $i=0;$i<8;++$i) {  
                        
                    $magicalSum = (hexdec($imeiMD5[$i])+hexdec($imeiMD5[$i+8])) & 0xFF
                        
                    $unlockCode .= (int)($magicalSum 255);  
                      }  
                      return 
                    $unlockCode;  
                    }  
                    echo 
                    'Unlock: 'calCode('123456789012345'); 
                    Da kommt für die angegebene IMEI 01277822 raus.

                    (Die Abfragen drumherum auf Länge der IMEI kannst du noch selber ergänzen.)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Echt vielen dank. Du hast mir wirklich viel abgenommen.

                      Kommentar

                      Lädt...
                      X