Objective C und PHP erzeugen unterschiedliche Verschlüsselungsresultate im Blowfish-Algorithmus

9

Ich versuche, den Blowfish-Algorithmus mit CBC -Modus und kCCOptionPKCS7Padding -Polstering zu implementieren. Szenario führt Kodierung und Dekodierung zwischen zwei Systemen wie IOS (Objective C) und PHP durch. Aber das Verschlüsselungsergebnis ist in zwei Plattformen nicht identisch.

Hier ist mein objektiver C-Quellcode.

  

ViewController.m

%Vor%

die Kodierungs- und Dekodierungsfunktionalitäten Gut in Xcode.

Hier ist PHP-Code.

  

crypt.php

%Vor%
  

final_encryption_test.php

%Vor%

}

// Verschlüsselungsergebnis base64encoding format IOS - & gt; 8IV / 2MGUY0HfwZLrd212fKNyp6AUzYl +

PHP - & gt; xUCTX0jsB3XyDWSeyUszSbQ2t90 / DNDv

Hier ist das codierte Ergebnis in zwei Umgebungen nicht gleich. Ich versuche es aus den letzten 7 Tagen. Finde aber noch keine Lösung.

Bisher weiß ich, dass CCCrypt für den CBC -Modus verwendet wird. Ich habe nicht verstanden, wo mein Problem ist. Ist es PHP-Ende oder IOS-Ende?

Eine kleine Hilfe wird sehr geschätzt. Danke.

    
Sourov Datta 04.11.2015, 08:14
quelle

1 Antwort

4

Ternärer Operator ruiniert dein Leben seit den letzten sieben Tagen.

Das Problem ist, dass Sie nil übergeben, wenn Ihre iv % non-nil at (iv)?nil:iv.bytes

ist

Entweder sollte es (iv)?iv.bytes:nil oder einfach iv.bytes sein, da es vollkommen in Ordnung ist, eine Nachricht an ein nil -Objekt zu senden

%Vor%

Ändern Sie oben nach unten

%Vor%
  

Ich führe deinen Code erneut aus und die Ausgabe ist die gleiche wie PHP, also xUCTX0jsB3XyDWSeyUszSbQ2t90/DNDv

    
Inder Kumar Rathore 04.11.2015, 09:53
quelle