开发者

Something missing in iPhone/PHP encryption/decryption

I have been trying to implement some encryption between an iPhone app and a PHP web service. It's not working however. It seems like the first half of the text is NOT decrypted while the second half is decrypted just fine. What should I do?

T开发者_如何学编程he PHP encryption method is as follows:

function decrypt($str, $iv) {
    $iv .= "00000000";
    $str = base64_decode($str);
    return self::decrypt_data($str, $iv, self::secret_key);
}

The iPhone stuff that encrypts the text uses a CryptoHelper class like this:

NSString *encrypted = [[CryptoHelper sharedInstance] encryptString:dataString];

The CryptoHelper class can be seen at http://pastie.org/1267796.


Try a simple example where you send a known Base64 encoded string from the iPhone app to PHP.

Compare the known valid string to what PHP is getting. I know recently, when trying to do an Ajax post from a script to PHP, we were having trouble with some characters (specifically +) being converted to spaces by PHP because it was doing a URL decode automatically. We had to switch all + to their % (URL-encoded %2B) equivalent. This fixed the problem for us.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜