Bonjour.
J'ai une chaîne que je souhaite crypter avec une clé en PHP.
Passée sur Android j'aimerais pouvoir la décrypter.
Quelqu'un aurait une solution et/ou sait si cela a déjà été fait ?
Merci.
Bonjour.
J'ai une chaîne que je souhaite crypter avec une clé en PHP.
Passée sur Android j'aimerais pouvoir la décrypter.
Quelqu'un aurait une solution et/ou sait si cela a déjà été fait ?
Merci.
Où est ton problème ?
Tu as juste à récupérer la chaîne d'une quelconque manière et faire l'algo de déchiffrage de la méthode de chiffrement que tu as utilisé côté Php.
La clé devra être connue par contre, donc elle devra être soit sur l'Android, soit à récupérer indépendamment de manière sécurisée.
C'est Android, PAS Androïd, ou Androïde didiou !
Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.
Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.
N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android
Récupérer la chaîne ne pose pas de souci.
Stocker la clé ne pose pas de problème puisque pour le moment c'est en dur.
Je ne suis pas super doué niveau crypto donc j'aurais préféré utiliser un algo déjà reconnu.
salut,
En fait le problème avec la crypto c'est qu'il y a beaucoup d'algos
- symetrique (AES, 3DES, RC4,RC5, etc ...)
- asymetriques (RSA, DSA, Diffie-Hellman, ...)
donc il faut d'abord connaitre l'algo qui a servi à chiffrer la chaine.
Si tu peux changer l'algo de chiffrement (coté PHP), je te conseille l'algo AES (taille de clé allant de 128 à 256 bits), trés rapide, et assez simple à mettre en place.
Tu peux essayer de regarder sur ce site ca pourrais t'aider :
http://schneimi.wordpress.com/2008/1...-java-and-php/
Bonjour,
En terme de crypto et de choix d'algorithme c'est une question de spécialiste.
RC4 est complètement obsolète par exemple.
3DES est très très lent.
Un algo symétrique ne s'utilise pas pour les même raison qu'un algo asymétrique ... etc ... etc ...
Bref tout un tas de questions qui dépende de l'utilisation que l'on veux en faire.
@olivpepette : Je n'ai encore rien fait côté PHP puisque je m'adapterai avec moins de problèmes sachant que je suis plus à l'aise avec PHP
J'ai déjà été voir cette page mais impossible de l'intégrer parce qu'à chaque fois il me demande de mettre des "throw Exception" un peu partout...
@Jimmy_ : Pour le moment j'en veux au moins un qui fonctionne xD
comme l'a dit Jimmy_, le choix de l'algo est un question de spécialiste : AES est le plus fiable (pour moi), cependant, la transmission de la clé (entre PHP et Android) doit se faire de manière sécurisée (avec un algo asymétrique)
j'ai déjà fait un travail similaire mais entre objective-c et java. je peux donc t'aider pour java mais par pour php (je n'y connais rien)
voila le code pour java :
Par contre il faut mettre tout ce code dans un bloc try{} catch{}.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // génération de la clé AES KeyGenerator gen = KeyGenerator.getInstance("AES"); gen.init(256); //taille de clé = 128, 192, 256, ... SecretKey sk = (KeyGenerator.getInstance("AES")).generateKey(); //chiffrement Cipher crypte= Cipher.getInstance("AES"); crypte. init (Cipher.ENCRYPT_MODE, sk); byte[] messageChiffré =crypte.doFinal(messageAChiffrer.getBytes()); //dechiffrement crypte. init (Cipher.DECRYPT_MODE, sk); byte[] messageDechiffré = crypte.doFinal(messageChiffré); String message = new String(messageDechiffré);
J'espere que cela t'aidera.
Ça fait planter mon appli >.<
Par contre j'ai retesté le lien que tu m'as donné et ça plante pas.
Par contre c'est pas bien décrypté mais au moins j'avance![]()
c'est quoi l'erreur que tu as quand ca plante ?
c'est bien sous Android que ca plante ?
car pour avoir la raison du plantage il faut regarder dans logcat (dans eclipse : window -> show view -> Other -> LogCat.
regardes y et dis moi quelle est l'erreur.
J'envoie l'appli directement sur mon téléphone.
Bon en fait en attendant j'ai testé un autre algo : http://other.fourisland.com/mcryptjava.htm
Et ça marche
Mais si la clé n'est pas bonne j'ai un Force Close -_-'
qu'est ce que tu entends par clé pas bonne ??
Si c'est ce que je crois, la clé doit avoir un nombre de caractères bien spécifique :
16 pour une clé de 128 bits,
24 pour 192 bits,
32 pour 256 bits
Ah yes j'avais ajouté un caractère...
Il va juste falloir que je limite le nombre de caractères à saisir.
C'est possible ça ?
c'est possible, en gros ca donnerais cela :
mais la clé est sensée être générée aléatoirement (pour plus de sécurité)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 String clé; //tu récupères la clé if (clé.size() != 16 || clé.size()!= 24 ...) System.out.println("entrez une autre clé (16, 24 ou 32 caracteres)");
petite correction c'est pas clé.size() mais clé.length()![]()
Ouais mais l'utilisateur va devoir la saisir à la main donc il faudrait éviter les erreurs ^^
En general, la clé est générée aléatoirement d'un coté, puis elle est transmise à l'autre coté de manière sécurisée. c'est plus sûr contre les attaques
Elle sera générée une fois sur ma page PHP.
L'utilisateur la copie sur son téléphone et c'est tout.
Partager