2009-08-05 11 views
4

Je voudrais crypter une chaîne avec AES 256 sur l'iPhone, mais je n'ai pas trouvé beaucoup via google. Ce que j'essaie de faire est de poster des données sur un site web dans le cadre d'un jeu que je crée, mais je ne veux pas que l'utilisateur puisse tricher en voyant comment il est posté parce que c'est du texte brut. Donc, je veux poster une chaîne cryptée sur ma page php (ala www.test.com/test.php?encrypted= etc ...) et le script php va le décrypter et faire ce qu'il faut si c'est valide.iPhone: Comment crypter une chaîne

Répondre

4

Une approche beaucoup plus facile ici serait d'utiliser un POST HTTPS, qui vous donnera des protections similaires avec le code beaucoup moins, mais il y a encore des difficultés pour résoudre le problème que vous êtes attaquer. Le type de solution que vous décrivez nécessite généralement une sorte de secret partagé, et il est très difficile de protéger le code en utilisant un secret partagé longtemps. Vous pouvez trouver ces messages utiles:

encore, HTTPS est probablement une bien meilleure solution que AES ici.

+0

je n'ai pas eu beaucoup d'expérience avec le protocole HTTPS. Pour le configurer, avez-vous besoin d'un serveur sécurisé et d'un certificat? – Codezy

+0

Votre serveur doit exécuter HTTPS. Vous pouvez utiliser un certificat auto-signé, même si c'est un peu plus compliqué sur iPhone. Il y a une discussion à http://stackoverflow.com/questions/933331/how-to-use-nsurlconnection-to-connect-with-ssl-for-an-untrusted-cert ASIHTTPRequest semble une bonne approche, même si j'ai construit mon propre pour mes projets existants donc ne pas avoir une expérience directe avec elle. –

+0

@RobNapier: Par secret partagé, vous entendez le cryptage symétrique. Vous pouvez également facilement chiffrer asymétriquement. La clé privée est secrètement stockée dans le serveur Web et utilisée par le script PHP. Il est (presque) impossible de casser AES - et vous n'avez pas besoin de recourir au HTTPS. (Bien que je suis ouvert aux alternatives, telles que HTTPS!) ;-) –

Questions connexes