PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → [WM16] Cryptage Android et décryptage PC
[WM16] Cryptage Android et décryptage PC
Started by Patrick BULLE, Jan., 21 2011 4:12 PM - 5 replies
Posted on January, 21 2011 - 4:12 PM
Bonjour,
Je suis en train de tester la communication entre une Application Android et une application PC.
La création de socket et l'échange de données fonctionne bien.
L'étape suivante est le cryptage de données. Et là, je ne m'y retrouve pas.

Côté android, écriture dans la socket :
bufBuffer=Crypte(bufBuffer, CST_MOT_DE_PASSE, crypteSécurisé)
SocketEcrit(gsNomSocket, bufBuffer)

Côté PC, lecture dans la socket :
bufBuffer=UnicodeVersAnsi(bufBuffer)
bufBuffer=Décrypte(bufBuffer, CST_MOT_DE_PASSE, crypteSécurisé)

Impossible de retrouver la chaîne initiale.

La constante CrypteSécurisé semble être la seule disponible pour le cryptage sur Android. L'aide stipule 'L'algorithme utilisé sera de type PBE (Password Based Encryption).'
Est-ce un autre alog utilisé quand la constante CrypteSécurisé est utilisé sur PC ?

Merci d'avance pour vos retours, vos conseils !

Cordialement,

Patrick BULLE.
Posted on January, 24 2011 - 5:57 PM
Bonjour Patrick

je n'ai pas testé ce cas particulier mais je vois que du coté PC, tu
commence par passer d'unicode vers ansi AVANT de décrypter...

Je suis d'accord, la chaine android est unicode. Mais une fois cryptée,
elle n'est plus unicode NI ansi, elle est juste cryptée... Donc
j'essayerais plutôt de la décrypter avant de la transformer en ansi

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com/index_FR.html


On 21/01/2011 10:12, Patrick BULLE wrote:
Bonjour,
Je suis en train de tester la communication entre une Application Android et une application PC.
La création de socket et l'échange de données fonctionne bien.
L'étape suivante est le cryptage de données. Et là, je ne m'y retrouve pas.

Côté android, écriture dans la socket :
bufBuffer=Crypte(bufBuffer, CST_MOT_DE_PASSE, crypteSécurisé)
SocketEcrit(gsNomSocket, bufBuffer)

Côté PC, lecture dans la socket :
bufBuffer=UnicodeVersAnsi(bufBuffer)
bufBuffer=Décrypte(bufBuffer, CST_MOT_DE_PASSE, crypteSécurisé)

Impossible de retrouver la chaîne initiale.

La constante CrypteSécurisé semble être la seule disponible pour le cryptage sur Android. L'aide stipule 'L'algorithme utilisé sera de type PBE (Password Based Encryption).'
Est-ce un autre alog utilisé quand la constante CrypteSécurisé est utilisé sur PC ?

Merci d'avance pour vos retours, vos conseils !

Cordialement,

Patrick BULLE.
Posted on January, 24 2011 - 11:06 PM
Bien vu, ....
Mais j'ai fais l'erreur en copiant le code sur le forum.
Dans mon code, l'ordre est respecté.
En ne faisant que de l'encodage, crypeAuncun dans la fonction crypte, j'ai des caractères parasites en fin de la chaîne qui est bien décodée.
Pas de solution en vue, en tout cas de mon côté.
Merci de s'être penché sur le problème...
Cordialement,
Patrick BULLE.
Posted on January, 16 2013 - 4:22 PM
Bonjour,

Voila, je souhaite faire communiquer un pc et un téléphone android pour récupérer sur le téléphone des informations de télémétrie envoyée par radio depuis un drone vers mon pc : altitude, vitesse, coordonnées gps etc ..

Je ne souhaite pas pour l'instant crypter ces échanges.
Dans un premier temps, ce sera uniquement pc vers téléphone android.
Dans un second temps, le téléphone pourra, en cliquant sur une carte google maps, envoyé un ordre au pc pour que le drone se rende aux coordonnées gps fournies.

Etant donné que vous avez déjà fait communiquer un pc et un appareil android, serait-il possible d'avoir un exemple concret de code afin que ce projet ne s'éternise.

merci d'avance

Eric
Posted on January, 16 2013 - 5:26 PM
Bonjour,

La solution adoptée est la suivante :
chiffrage Blowfish en windev grâce à un composant .Net Bouncy Castle Crypto.

Pour la partie Android, on a laissé tombé l'outil de PC-Soft et on a développé directement en Java (intègre nativement le chiffrage blowfish de mémoire).

Penser à effectuer les échanges en UTF-8.

Bon développement.

P. BULLE.
Posted on January, 16 2013 - 6:02 PM
Merci pour votre réponse mais ma demande concernait les échanges pc et android en windev des 2 cotés hors cryptage.

la solution doit forcément utiliser les sockets

Je me débrouillerai tout seul, c'est pas grave.

Merci encore

Eric