Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
697 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Cryptage d'une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cryptage d'une chaine

n°1815606
Hamy
Posté le 23-11-2008 à 20:34:54  profilanswer
 

Bonjour à tous,
Dans le cadre d'un projet informatique en DUT, j'ai choisi: "Cryptage d'une chaine de caractère".
J'aimerai beaucoup améliorer mon programme. Mais comment?
Voici le code actuel:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <string.h>
  5. void menu()
  6. {
  7.     printf("\n------------\n" );
  8.     printf("----Menu----\n------------\n\n" );
  9.     printf("1: Cryptage\n" );
  10.     printf("2: Decryptage\n" );
  11.     printf("3: Quitter\n" );
  12. }
  13. int main()
  14. {
  15.     int choix,fin=1;
  16.     menu();
  17.    
  18. while(fin)
  19. {
  20.     printf("\n\nQuel est votre choix:" );
  21.     scanf("%d",&choix);
  22.     fflush(stdin);
  23.     switch(choix)
  24.     {
  25.     case 1: {cryptage();}break;
  26.     case 2: {decryptage();}break;
  27.     case 3: exit(-1);break;
  28.     default: printf("Ce choix n'existe pas !\n" );}
  29.     }
  30. return 0;
  31. }
  32. int cryptage()
  33. {
  34. char chaine[80];
  35. int tailletab, i;
  36. printf("\n\nCryptage:\n" );
  37. printf("Chaine a crypter:" );
  38. scanf("%s",&chaine);
  39. tailletab=strlen(chaine);
  40. for(i=0; i<tailletab; i++)
  41. {
  42.  chaine[i]=chaine[i]+5*9-2;
  43. }
  44. printf("\nTaille du tableau est:%d",tailletab);
  45. printf("\nVoici la chaine cryptee:%s",chaine);
  46.    return 0;
  47. }
  48. int decryptage()
  49. {
  50. printf("Programme de decryptage simple\n\n" );
  51. return 0;
  52. }


 
(La fonction decryptage est futile)
Ceci est une méthode parmi tant d'autres.
Pourriez vous me dire comment je pourrais optimiser mon code?  :sarcastic:
Merci d'avance!  

mood
Publicité
Posté le 23-11-2008 à 20:34:54  profilanswer
 

n°1815611
lorill
Posté le 23-11-2008 à 20:55:12  profilanswer
 
n°1815640
Hamy
Posté le 23-11-2008 à 23:05:52  profilanswer
 

Je m'attendais à un pti coup d'pouce  :(

n°1815675
lorill
Posté le 24-11-2008 à 08:07:52  profilanswer
 

c'en est un [:spamafote]
 
tu choisis un algo dans la liste (symétrique, ca sera plus simple), tu fais ce que tu peux pour le comprendre, et apres tu l'implémentes, sans copier/coller l'implémentation de référence.
 
parce que pour l'instant, ton algo de chiffrement, c'est ca :
chaine[i]=chaine[i]+5*9-2
 
ce qui veut dire que chaque caractère a son correspondant, systématiquement le même.

n°1815686
MEI
|DarthPingoo(tm)|
Posté le 24-11-2008 à 09:26:00  profilanswer
 

Fait du chiffre de playfair c'est normallement de ton niveau et c'est assez rapide. Puis si tu fait un projet sur le cryptage, faut quand meme avoir une partie theorique correcte sur chiffrement symetrique/asymetrique, cle publique cle privé, chiffrement ou hachage, etc...


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1815689
sircam
I Like Trains
Posté le 24-11-2008 à 09:36:09  profilanswer
 

Hamy a écrit :

Je m'attendais à un pti coup d'pouce  :(


De quel genre? [:pingouino]
 
Faut voir ce que tu veux "optimiser". Parce que là, on dirait un simple exercice de TP, pas un projet. [:sadnoir]
 
Petit détail : while(fin), c'est très curieux. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1815692
jagstang
Pa Capona ಠ_ಠ
Posté le 24-11-2008 à 09:42:39  profilanswer
 

commence déjà par corriger la faille de buffer overflow.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1815697
sircam
I Like Trains
Posté le 24-11-2008 à 09:48:45  profilanswer
 

jagstang a écrit :

commence déjà par corriger la faille de buffer overflow.


Boh, les profs s'en soucient à ce niveau? [:dawa]
 
Donne-lui peut-être un input qui va poser pb; je sens que ça pas passer au sinon. [:itm]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1815733
jagstang
Pa Capona ಠ_ಠ
Posté le 24-11-2008 à 11:36:15  profilanswer
 

ben une chaine plus longue que le buffer qu'il a prévu...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1816065
Hamy
Posté le 24-11-2008 à 19:21:22  profilanswer
 

Oula oula

Citation :

commence déjà par corriger la faille de buffer overflow.


Citation :

Donne-lui peut-être un input qui va poser pb; je sens que ça pas passer au sinon.


pas trop compris !
Bon je sais que ce que j'ai fais est simplissime.
En résumé: je souhaiterai que chaque caractère codé possède sa propre clé (cryptage asymétrique je crois).
Le projet est pour mi-janvier 2009. J'ai un peu d'avance donc j'aimerai par la suite créer une légère interface de ce genre:  
http://www.oussx.somee.com/images/cryptx.jpg

mood
Publicité
Posté le 24-11-2008 à 19:21:22  profilanswer
 

n°1816074
sircam
I Like Trains
Posté le 24-11-2008 à 19:46:51  profilanswer
 

Pour la remarque du buffer overflow, jagstang a tout de même donné une explication limpide suite à ma remarque...
 
Pour le reste, beh, au boulot :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1816203
c0wb0y
:d
Posté le 24-11-2008 à 23:43:32  profilanswer
 

Le cryptage n'est pas très efficace quand même là, avant de penser à une GUI pour égayer tout ça, je pense que ce serait plus intéressant (pour toi) d'étudier des algos plus performant.

 

Dans ton cas, une étude des fréquences d'apparition des lettres sur un texte assez long permet généralement de retrouver la correspondance entre le texte crypté et le texte original. Une fois qu'on a cette correspondance, on peut décrypter tout les messages qui passeraient par ton algo.


Message édité par c0wb0y le 24-11-2008 à 23:43:51
n°1816253
jagstang
Pa Capona ಠ_ಠ
Posté le 25-11-2008 à 08:59:25  profilanswer
 

raté c'est symmetrique (sinon il te faudrait 2 clés)
 
Sinon ce que tu fais c'est de la substitution monoalphabétique


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1816263
MEI
|DarthPingoo(tm)|
Posté le 25-11-2008 à 10:05:52  profilanswer
 

Son algo est pourri, s'il rend ça il va se faire rire au nez.
 
En DUT en premier semestre j'avais fait du cryptage en algo vigenere/playfair qui est deja un vrai algo et surtout momontre un poil de recherche.
 
Apres c'est sur que fait du cryptage plus evolué c'est pas forcement facile, mais les cryptage simple son abordable.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1816268
jagstang
Pa Capona ಠ_ಠ
Posté le 25-11-2008 à 10:19:09  profilanswer
 

clair que c'est du crpytage primitif. Mais c'est un poil ludique pour se familiariser avec le C.  
 
Vigenère est en effet du vrai cryptage. Car il est en effet absolument incassable (seul hic, la clé doit être aussi longue que le message. Ce qui rend le transport de la clé problématique...)
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1816276
MEI
|DarthPingoo(tm)|
Posté le 25-11-2008 à 10:40:59  profilanswer
 

De tête, si la clef est plus petite que le message, on l'utilise "en boucle".
 
Mais  bon ça reste imparfait, car ça ne fonction qu'avec des caractère alphabetique non accentués.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1816280
jagstang
Pa Capona ಠ_ಠ
Posté le 25-11-2008 à 10:45:36  profilanswer
 

en l'utilisant en boucle il devient imparfait en effet. Pour les caractère accentués c'est faux. Libre à toi de choisir ton ensemble pour la chaine et la clé


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1816376
Hamy
Posté le 25-11-2008 à 14:11:16  profilanswer
 

Bon et bien au boulot, je vais m'inspirer des algo de type vigenere playfair etc...
Si j'ai bien compris les méthodes sont:
Les données de la chaine doivent changer de place,
Evidemment changer de valeur
Attribuer un clé


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Cryptage d'une chaine

 

Sujets relatifs
Supprimer une partie d'une chaine de caractère.Antiflood de caractere dans une chaine et accent
Stocker un espace dans chaine de caractère[Batch] FOR et concanétion de chaine
[Delphi]Saisir une chaine de caractères dans un programme extérieurcomparaison de chaine ça marche plus
Enlever des parentheses debut et de fin à une chaine!!!faire une fonction qui retourne une chaine de caractere
tester la présence d'un espace dans une chaine.Cryptage XOR d'une chaine : pbm de caractères NULL
Plus de sujets relatifs à : Cryptage d'une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR