Iphone NSData şifrelemek ve php şifresini

3 Cevap php

Ben Iphone geliştirme, benim iPhone uygulamasını kullanarak php sunucu üzerinde bazı verileri yüklemek zorunda olduğu bir uygulama oluşturmak istiyorsanız yeni duyuyorum. Bunun için içerik php sunucu üzerinde yüklemek zorunda Iphone üzerinde bir dosya var. Bunun için ben NSData dosyanın içeriğini çevirdim ve şimdi ben bu NSData nesneyi şifrelemek istiyorum ve daha sonra öncelikle ben sonra sunucu üzerinde yüklemek zorunda NSData nesneyi şifresini zorunda php sunucusu ve php sunucu üzerinde geçmek .

Ama iPhone app bazı verileri şifrelemek ve sonra php deşifre edebilecek herhangi bir yol bulmak mümkün değil.

Ve ayrıca ben php aktarmadan önce şifrelenmiş verileri sıkıştırmak ve sonra php o veri sıkıştırmasını istiyorum.

Benim uygulama tam akışı

           IPhone

NSData -> Şifreli NSData -> Sıkıştırılmış Şifrelenmiş veri

           php

Şifrelenmiş veri sıkıştırılmış -> sıkıştırılmamış şifreli veri -> (orijinal) NSData şifresi.

Bazı biri nasıl böyle bir uygulama geliştirebilir bana yardımcı olabilir misiniz?

Şimdiden teşekkürler.

Gaurav

3 Cevap

Blogumda bu konuda bir makale yazdı: http://www.em-motion.mobi/?p=139

En iyi yolu muhtemelen, bir ortak anahtar kripto sistemi ile NSData şifrelemek uygulaması ile bir kamu anahtar dağıtmak, şifrelemek, sonra sadece PHP uygulaması özel anahtarı ile deşifre etmek mümkün olacaktır olacaktır.

PHP, size özel / ortak anahtar şifreleme uygulamak için OpenSSL'yi kullanabilirsiniz.

$key = openssl_pkey_get_private('file:///path/to/my/secure/privatekey', $my_secure_passphrase);
openssl_private_decrypt($nsdata, $decrypted_data, $key);

openssl_private_decrypt() o sürece sadece özel anahtarı sahip senin telefonlarından NSData şifresini ki sadece son derece yararlıdır. Ben iPhone şifreleme yolunda ne emin değilim, ama bir ortak anahtar kullanarak şifrelemek için bir yol var olumlu değilim.

Siz CommonCrypto AES şifreleme desteği bir görünüm vermek isteyebilirsiniz.

I'd suggest writing a category for NSData that handles the encryption. Given that you need to be able to interoperate between different systems, be sure to understand the concepts of "salt" and "initial value vector (IV)".

Xorlev dediği gibi, en iyi güvenlik, bir genel anahtar kripto kullanılarak elde edilir.

Take care about how openssl stores the salt, it's before the encrypted data. something like:

dizesi "Salted__" 8 bayt tuz ve şifreli veri izledi.

Eğer güçlü bir güvenlik ihtiyacınız yoksa, sadece simetrik kripto yapmak.