md5 für passwörter in iOS (für alle Zeichen)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • md5 für passwörter in iOS (für alle Zeichen)

    Hi Leute,

    eigentlich eine einfache Angelegenheit. Ich hab username und passwort im app...md5 hash des passworts sollte im app erstellt werden und im internet dann verglichen...da ist das problem schon...die passwörter können (logischerweise) Sonderzeichen oder Umlaute beinhalten.

    und dann läuft es auch so NICHT:
    EDIT: Die Begründung ist die dass dieses Stück code nur dann funktioniert wenn keine Umlaute oder Sonderzeichen das Passwort beinhaltet...

    PHP-Quellcode

    1. //pw in md5 vor equal
    2. const char *ptr = [@"üüaaüü" cStringUsingEncoding:NSUTF8StringEncoding];
    3. //create byte array of unsigned chars
    4. unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
    5. //create 16 byte md5 has value, store in buffer
    6. CC_MD5(ptr, strlen(ptr), md5Buffer);
    7. //convert md5 value in the buffer to nsstring of hex values
    8. NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    9. for(int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
    10. [output appendFormat:@"%02x",md5Buffer[i]];
    11. }
    12. NSLog(@"%@",output);
    Alles anzeigen


    leider kommt hier völlig was anders raus - zum Vergleich:
    php-einfach.de/sonstiges_generator_md5.php
    hier einfach üüaaüü eingeben dann seht ihrs...

    ich hab oft was von openssl/md5.h gelesen..angewendet leider noch nicht, da ich da keine Angaben aus dem Internet dazu fand, es hiess oft immer nur "its very easy, because its in the ios sdk"...

    helft mir doch bitte :) ?( :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von acidayi ()

  • Lösung gefunden :D per Zufall

    supi danke..habs gerade selber per zufall rausbekommen...
    hier nochmal der komplette code für all die die sowas brauchen:

    PHP-Quellcode

    1. //pw in md5 vor equal
    2. const char *ptr = [@"üüaaüü" cStringUsingEncoding:NSISOLatin1StringEncoding];
    3. //create byte array of unsigned chars
    4. unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
    5. //create 16 byte md5 has value, store in buffer
    6. CC_MD5(ptr, strlen(ptr), md5Buffer);
    7. //convert md5 value in the buffer to nsstring of hex values
    8. NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    9. for(int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
    10. [output appendFormat:@"%02x",md5Buffer[i]];
    11. }
    12. NSLog(@"%@",output);
    Alles anzeigen


    NSISOLatin2StringEncoding ging bei mir übrigens auch...
  • Kleine Anerkungen ganz Nebenbei:

    - Es wird im allgemeinen von MD5 abgeraten, es gibt neuere und bessere Verfahren.
    - Wenn Du das fuer Passwoerter verwenden willst, solltest Du daran denken, das ganze zu Salzen
    - Wenn Du das fuer Passwoerter verwenden willst, solltest Du MD5 viele male aufrufen, also am besten sowas wie
    md5("salz" + md5("salz2" + md5(passwort + "salz3")))
    C++
  • acidayi schrieb:

    NSISOLatin2StringEncoding ging bei mir übrigens auch...

    zerm schrieb:

    Kleine Anerkungen ganz Nebenbei:

    - Es wird im allgemeinen von MD5 abgeraten, es gibt neuere und bessere Verfahren.
    - Wenn Du das fuer Passwoerter verwenden willst, solltest Du daran denken, das ganze zu Salzen
    - Wenn Du das fuer Passwoerter verwenden willst, solltest Du MD5 viele male aufrufen, also am besten sowas wie
    md5("salz" + md5("salz2" + md5(passwort + "salz3")))

    Aber schön auf den Blutdruck achten. ;) +scnr+
    „Meine Komplikation hatte eine Komplikation.“
  • acidayi schrieb:

    klar phpkit,phpfusion,phpnuke, typo3 seit 4.5 mit salted pw, joomla soweit ich weiss nur mit zusätzlichen plugins nachsalzen möglich... die die mir spontan einfallen...

    Oh jeh. Wie kommt man auf sowas? :(
    Ich kann doch eine Rainbow-Table mit allen 8-Zeichen Passwoertern fuer MD5 mir "einfach" besorgen -- also koennen sie doch gleich die Passwoerter Plaintext speichern :(
    C++