我是Iphone开发的新手,我想创建一个应用程序,其中我必须上传一些数据到php服务器上使用我的Iphone应用程序。为此,我在Iphone上有一个文件,其内容必须上传到php服务器上。为此,我已经将文件内容转换为NSData格式,现在我想加密这个nsdata对象,然后将其传递到php服务器,在php服务器上,首先我必须解密nsdata对象,然后我必须将其上传到服务器上。
但是我找不到任何方法来加密Iphone应用程序中的一些数据,然后在php中解密它。
我还想在将加密数据传输到php之前对其进行压缩,然后在php上对其进行解压缩。
我的应用程序的完整流程是
IPhoneNSData -->加密的NsData -->压缩的加密数据
php压缩的加密数据-->未压缩的加密数据-->解密的(原始) NSData。
有人可以帮助我如何开发这样的应用程序吗?
提前谢谢。
高拉夫
发布于 2010-02-20 16:02:43
最好的方法可能是使用公钥密码系统加密NSData,与应用程序一起分发公钥,进行加密,然后只有您的应用程序才能使用私钥解密。
在PHP中,您可以使用OpenSSL来实现公钥/私钥加密。
$key = openssl_pkey_get_private('file:///path/to/my/secure/privatekey', $my_secure_passphrase);
openssl_private_decrypt($nsdata, $decrypted_data, $key);openssl_private_decrypt()非常有用,因为只有你拥有私钥,它才能从你的手机中解密NSData。我不确定iPhone的加密方式是什么,但我确信有一种方法可以使用公钥进行加密。
发布于 2010-02-20 21:18:52
您可能想看看CommonCrypto中对AES加密的支持。
我建议为NSData编写一个处理加密的类别。考虑到您需要能够在不同系统之间进行互操作,请务必理解"salt“和”初始值向量(IV)“的概念。
正如Xorlev所说,最好的安全性是通过使用公钥加密获得的。
注意openssl是如何存储salt的,它在加密数据之前。类似于:
字符串"Salted__“,后跟8个字节的salt和加密数据。
如果您不需要强安全性,只需使用对称加密即可。
https://stackoverflow.com/questions/2301457
复制相似问题