Ankündigung

Einklappen
Keine Ankündigung bisher.

Verschlüsselung mit Swift und PHP ergeben unterschiedliche Werte

Einklappen

Neue Werbung 2019

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

  • Verschlüsselung mit Swift und PHP ergeben unterschiedliche Werte

    Hallo Zusammen,

    seit einiger Zeit kämpfe ich mit dem Problem, dass meine Verschlüsselungsfunktionen nicht richtig funktionieren.
    Die mit Swift verschlüsselten Strings kann ich ohne Probleme mit PHP entschlüsseln.
    Wenn ich jedoch mit PHP Strings verschlüsseln möchte, bekomme ich da immer anderer Werte heraus, als wie mit Swift.

    Könnt ihr mir da helfen, wo mein Fehler liegt?

    Mein Code ih PHP sieht wie folgt aus:

    PHP-Code:
    $text 'Test';
    $key128 'Test1234Test1234';
    $iv '1234567891011121';

    $str =  bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128$key128$textMCRYPT_MODE_CBC$iv)); 
    Als verschlüsselten Text erhalte ich dann: a89ab899ab5d5adacf1d74c25b1b42db


    Und in Swift bekomme ich mit dem gleichen Key und IV folgendes Resultat:

    0e492778f9a3ee72c66d7867a21b98ca

    Zum Verständnis noch mein Swift-Code:

    Code:
    let input: Array<UInt8> = Array(_Nachricht.utf8);
    
    
    
            let k = "Test1234Test1234";
    
            let i = "1234567891011121"
    
    
    
            let key: Array<UInt8> = Array(k.utf8)
    
            let iv: Array<UInt8> = Array(i.utf8)
    
            do {
    
                let encrypted = try AES(key: key, blockMode: .CBC(iv: iv), padding: .pkcs7).encrypt(input)
    
                return(encrypted.toHexString())        
    
            } catch
    
            {
                print(error)
    
            }

    Vielen Dank schonmal.





  • #2
    Hat niemand eine Idee wo der Fehler liegen könnte?

    Kommentar


    • #3
      Bevor du mit mcrypt weiter machst: mcrypt wird nicht mehr weiterentwickelt und in neueren PHP-Versionen auch nicht mehr mitgeliefert.

      Schau dir besser libsodium an und schau, ob du diese Probleme damit immer noch hast.

      Warum willst du überhaupt verschlüsseln? Reicht https nicht? Synchrone Verschlüsselung ist nicht immer eine gute Idee, besonders wenn der Schlüssel im Quellcode steht.

      Kommentar


      • #4
        Testweise kan man durchsaus auch mal den iv so generieren:
        OpenSSL dürfte ja auch beiden Palttformen ähnlich sein, das lässt sich zu Not auch noch nehmen.
        Bedenke bitte auch rkr's lezten Absatz!

        Kommentar


        • #5
          Ja mcrypt ist tot! Bitte nicht mehr nehemn.

          Dein Problem erschlägst Du mit:

          PHP-Code:
          <?php

          $text 
          'Test';
          $key128 'Test1234Test1234';
          $iv '1234567891011121';

          echo 
          bin2hexopenssl_encrypt $text'aes-128-cbc'$key128OPENSSL_RAW_DATA$iv ) );

          Kommentar

          Lädt...
          X