IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Décrypter une chaîne


Sujet :

Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut Décrypter une chaîne
    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.

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    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.

  4. #4
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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/

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    @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

  7. #7
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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 :
    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é);
    Par contre il faut mettre tout ce code dans un bloc try{} catch{}.

    J'espere que cela t'aidera.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Ç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

  9. #9
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    c'est quoi l'erreur que tu as quand ca plante ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Un Force Close :/

  11. #11
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    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 -_-'

  13. #13
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    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 ?

  15. #15
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    Citation Envoyé par p4ndore Voir le message
    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 :
    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)");
    mais la clé est sensée être générée aléatoirement (pour plus de sécurité)

  16. #16
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    petite correction c'est pas clé.size() mais clé.length()

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Ouais mais l'utilisateur va devoir la saisir à la main donc il faudrait éviter les erreurs ^^

  18. #18
    Membre averti
    Homme Profil pro
    ingénieur d'études
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Réponses: 3
    Dernier message: 28/09/2003, 10h46
  3. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 11h09
  4. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo