Aller au contenu

Traduction code style magasine


tomitom007

Messages recommandés

Bonjour à tous,

Voila, mon but, c'est de faire un programme capable de traduire en français un texte codée, style magasine pour enfant (les trucs avec les supers dessin, on en a tous fait ^_^), mais sans indice.

Mon idée, en gros, c'est de brute-forcer en utilisant un dico de français.

donc, voila mes questions :

- D'autres idées plus intelligentes que ma méthode de bourrin ?

- Un langage vous semble plus approprié ?

- Une idée d'ou je pourrais trouver un dico de fr utilisable facilement ?

Merci d'avance ^_^

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Parfois da s certains mag de jeu pour enfant on a des petits texte a decouvrir avec a chaque lettre associé un symbole. Mais en général assez d'indice pour que ce soit facilement realisable.

Petit exemple avec des chiffre a la place des symbole :

1213 245 67 1892

...i est un .od.

DONNERA

1213 245 67 1892

Ceci est un code

Bien sur avec des symbole on peut faire plus long car plus de symbole possible que de chiffre :D

Pour le pb de l'auteur du post apparement il veut resoudre ce genre de code mais sans avoir aucun indice.

A mon avis un algorithme brute force n'est pas le plus simple. Si tu t'y connais un peux tu peux essayer de faire par rapport aux frequence d'apparition de symbole...

Lien vers le commentaire
Partager sur d’autres sites

en c, en utilisant une conversion ascii

c'est bien bourrin

tu as un char monalphabet[26] (ou [52] si tu veux t'amuser a gerer les majuscules, voire plus pour les ascii couremment utilises)

par exemple:

monalphabet[4] = 4 (e = 5eme lettre, mais on commence de 0)

monalphabet[13] = 7

etc.

tu vas lancer ton programe avec ./prog "'message original crypte'" "'message partiellement traduit'" (defini un caractere 'jocker' qui indiquera que ledit caractere existe mais n'est pas traduit)

ensuite, tu cree une boucle qui executera les actions suivantes:

- lire les deux chaines, pour tout caractere traduit, va chercher sa valeur dans la chaine initiale et colle la dans monalphabet[x]

- completer au maximum la chaine traduite avec les infos de monalphabet[]

- pour les mots a plus de 50% de lettres connues, lancer un nmatch qui va strcmp le mot traduit avec chaque mot de ta bdd

- pour chaque mot qui match, proposer la solution et en fonction de la coherence, tu peux garder le mot, je rejeter, ou le mettre en attente (dans une liste chaine par exemple, dans laquelle tu vas conserver l'ancient etat du monalphabet[], au cas ou tu decide de gercler un mot).

- reecrire la chaine avec le nouveau mot

c'est un vieux truc de barbar, et le match risque d'etre un peu lourd suivant la taille de ton dico, mais c'est realisable, et ca peut etre marrant

Pour le pb de l'auteur du post apparement il veut resoudre ce genre de code mais sans avoir aucun indice.

autant pour moi

alors tu peux essayer de deduire au moins queleques voyelles en scannant la liste initiale

mais ton resultat ne sera jamais parfait. meme avec un algo beton, ca m'etonnerait que tu puisse decoder grand chose

Lien vers le commentaire
Partager sur d’autres sites

il te faut faire des études statisiques sur le message chiffré. Pour peu que le message soit assez long, et qu'il soit en français, tu vas retrouver les mêmes occurences de lettres (on peut trouver facilement une table d'occurences des lettres dans la langue française), et là, le match est quasi direct avec une certaine certitude.

à partir de là, tu dispose d'un base d'incides fiable pour lancer un match par dictionnaire (si besoin)...

bref rien de bien compliqué :francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...