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.
%Vor%ViewController.m
die Kodierungs- und Dekodierungsfunktionalitäten Gut in Xcode.
Hier ist PHP-Code.
%Vor%crypt.php
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.
Das Problem ist, dass Sie nil
übergeben, wenn Ihre iv
% non-nil
at (iv)?nil:iv.bytes
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
Ändern Sie oben nach unten
%Vor%Ich führe deinen Code erneut aus und die Ausgabe ist die gleiche wie PHP, also
xUCTX0jsB3XyDWSeyUszSbQ2t90/DNDv
Tags und Links objective-c php ios cocoa-touch blowfish