Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > C > [TP] Réaliser un crypteur de fichiers à l'aide de la fonction XOR > Lecture des commentaires

[TP] Réaliser un crypteur de fichiers à l'aide de la fonction XOR

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Pseudo Commentaire
Page : 1 
Hors ligne Torim # Posté le 29/10/2006 à 20:20:41 - Ce membre a mis la note : 20
le C C bien :)
Avatar
Groupe : Membres
Vraiment bien mais je pense pas qu'on puisse faire le TP tout seul (on connait pas les fonction pour lire et tout en binaire....).

Sinon, dans un jeu par exemple comment on fait pour utiliser notre fichier crypter?
(on vas pas le décrypter sa servirais plus à rien :euh: )

Sinon j'ai mis 20 (j'chuis toujour pas difficile moi mais là c'est vraiment bien en plus ;) ).

ze zuis zun zéro
mon site communautaire guitare et tout autre instrument:
ici tab, chat, forum
 
Hors ligne gardien # Posté le 29/10/2006 à 21:52:34 - Ce membre a mis la note : 20
Groupe : Membres
Il est vraiment bien ce tuto ! J'ai tout compris ! Ca mérite un 20.

Citation : Torim
Vraiment bien mais je pense pas qu'on puisse faire le TP tout seul (on connait pas les fonction pour lire et tout en binaire....).

Moi je l'ai fait avec fgetc et fputc et ça marche trés bien.


Pour on jeu soit on decrypte dans un fichier on le lit et on le vide,
soit on calcule la taille du fichier, on fait un malloc et on décrypte dedans.
Hors ligne Darkelfe # Posté le 30/10/2006 à 13:41:21 - Ce membre a mis la note : 14
Apprendre tout sur tout !
Avatar
Groupe : Membres
14/20

il est pas facile a deviner ton exercice ...

sinon, bien. je pense que ca va servir a d'autres.

Envie de partager vos créations avec d'autre programmeurs ? Une seule adresse :
Image utilisateur
 
Hors ligne Geo.669 # Posté le 30/10/2006 à 13:49:01 - Ce membre n'a pas mis de note
.... triangle rectangle ... ?
Avatar
Groupe : Membres
Merci à tous.
En fait, ce programme peut vous servir à crypter pleins de fichiers confidentiels, si vous ne voulez pas que vos proches les exécutes, car vous seul connaissez la clef :)
et désolé si vous pouvez pas deviner l'excercice vous même, mateo fait du très bon boulot et c'est un peu normal d'oublier de parler de certaines choses :)

J'ai le droit de penser, même si je suis con. Par contre je n'ai pas le droit d'être con en pensant.
 
Hors ligne Guismay # Posté le 30/10/2006 à 13:53:30 - Ce membre a mis la note : 19
Groupe : Membres
super tuto venom, félicitations ;)

je ne vais pas mettre 20 car on ne peut pas attendre la perfection, mais ça vaut bien 19 :D

continue comme ça :)
Hors ligne nax # Posté le 30/10/2006 à 16:49:07 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Tu devrait décrire pas à pas chaque étapes au lieu de balancer tout d'un coup ;)
 
Hors ligne Sanco95 # Posté le 30/10/2006 à 17:11:35 - Ce membre a mis la note : 18
C
Avatar
Groupe : Membres
Très bon tuto, j'avais jamais eu l'idée de crypter de cette façon et pourtant je pense que c'est la plus efficasse.
Au fait, juste après avoir survolé le tutoriel j'ai fait ma propre fonction de cryptage et j'ai découvert qu'il ne faut pas crypter les caractères '\0' et EOF.

Ca mérité un 19/20 pourquoi pas un 20/20 ? Parce que les débutants auront sûrement du mal à comprendre le code de fin (fonction non vues dans le cours de Mathéo21 alors qu'on pouvait faire exclusivement avec).
Moi j'ai beaucoup aimé et les commentaires sont très explicites, merci !
:D
Hors ligne BSoD # Posté le 30/10/2006 à 20:45:35 - Ce membre a mis la note : 17
Groupe : Membres
Très intéressant ce tuto => 17 :)

Sinon je voulais juste savoir : existe-t'il d'autres fonctions réversibles comme ce XOR ?

Edit : euh... et encore 2 questions en bonus :p
Citation : tuto
Si vous faites un XOR avec 0B et 67, vous obtiendrez... 6C, donc la lettre l

et si on fait OB ^ 6C, on obtient 67 ?
et si on fait 37 ^ 6C, on obtient OB ?

En ce qui concerne le code : le pointeur (la variable ch dans ce tuto) est déplacé automatiquement, quand on lit un caractère. En est-il de même en PHP ?

Merci d'avance :)
Hors ligne jo_le_coco # Posté le 30/10/2006 à 23:53:57 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
Très intéressant, clair, et splendide idée de nous faire une approche des opérateurs de bit :)

Il serait injuste que je misse autre chose que... allez, 20 ! ;)
Hors ligne gardien # Posté le 31/10/2006 à 01:25:32 - Ce membre a mis la note : 20
Groupe : Membres
67 ^ 6C = 0B
1 + 1 = 0
1 + 1 = 0
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0
1 + 0 = 1
1 + 0 = 1

ET

67 ^OB = 6C

1 + 0 = 1
1 + 0 = 1
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
1 + 1 = 0

ET

0B ^6C = 67
0 + 1 = 1
0 + 1 = 1
0 + 0 = 0
1 + 1 = 0
0 + 1 = 1
1 + 0 = 1
1 + 0 = 1
Hors ligne BSoD # Posté le 31/10/2006 à 10:21:52 - Ce membre a mis la note : 17
Groupe : Membres
Ok merci :)

J'ai vérifié pour la lecture de fichiers en PHP, et apparemment ça marche comme pour le C.
Hors ligne Jibriss # Posté le 26/11/2006 à 00:25:01 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Le probleme avec Xor c'est :

Original ^ Clef = Crypté
Crypté ^ Clef = Original

mais aussi :

Original ^ Crypté = Clef

Si on connait le format du fichier (par exemple une image JPEG) on sait que ca commence par "ff d8 ff e0 00 10 4a 46 49". donc avec la derniere formule on peut trouver la clef(juste 9 tests à faire).

Et meme si on utilise une clef de + de 9 caractere, faut savoir qu'il y a 2^8 possibilités à chercher pour 10 caractere... (voire moins, vu qu'on entre la clef au clavier y'a que des lettres et des chiffres) 2^16 pour une clef de 11 caracteres.

Donc si le fichier n'est pas trop gros ca reste pas très long a tester :) Suffit de faire un prog qui décrypte à la chaine selon cette méthode, ca fait un gros tas de fichiers dans un répertoire et vous verrez avec l'apercu quel fichier est bon :)

Donc faites des grosses clefs pour que ca soit vraiment dur à décrypter ! et changez l'extension du fichier (sécurité par l'obscurantisme) ca force le gars en face à tester plusieurs formats d'images / sons / videos / textes.

Ca me rapelle des bons souvenirs quand j'étais gosse : Avant internet, je faisais ca pour décrypter les photos de charmes des CD des magasines, avec Qbasic :)
Hors ligne Leronwë # Posté le 13/12/2006 à 17:27:52 - Ce membre n'a pas mis de note
Groupe : Membres
Ce système de cryptage se raporte à la méthode de Vigenère qui n'est pas vraiment très sure... Il ne vaut mieux pas crypter de documents confidentiels avec :p
C'est Vernam qui a trouvé la solution : une clé aussi longue que le message (et choisie aléatoirement) permet un cryptage sur.
Hors ligne LunaA # Posté le 03/01/2007 à 00:31:30 - Ce membre a mis la note : 18
Groupe : Membres
Moi je met un 18 / 20 :p

J'ai crypter un code en langage C avec, et ma clef apparait 3 fois par ligne dans le fichier crypter :(
A pars sa, c'est sympa. :lol:

Si je dis des conneries, merci de prévenir.
 
Hors ligne Ducanos # Posté le 23/01/2007 à 00:24:23 - Ce membre n'a pas mis de note
y a d'la merde dans l'tuyau
Avatar
Groupe : Membres
Je trouve le totu trés bien réaliser mais ce type de cryptage n'est plus trop conseiller depuis bien longtemps.
Ce type de cryptage n'est qu'un systéme simple trés facile a craquer par force-brute ou si ta clé de cryptage est découverte.

Personnellement je préfère crypter en multi-alphabétique par matrices et vecteurs.
m'^ = ( A * m^ + b^ ) mod n
où m^ représente un vecteur de valeur non crypter de taille 1*x
m'^ représentele vecteur de valeur crypter de taille 1*x
A représente une matrice de taille y*x
b^ représente un vecteur de taille 1*x
n représente la base de cryptage

Bien sur je compte bientôt mettre mon tuto sur se systéme de cryptage matriciel.
Il n'empêche que pour coder des dossier de jeu ton systême est le meilleur est le plus rapide a utilisé ;)

イびで²creAtive@TMNF
 
Hors ligne h_raf # Posté le 16/03/2007 à 01:07:53 - Ce membre n'a pas mis de note
Groupe : Membres
:D Trés interessant ton programme de XOR merci.
si quelqu'un a des TP comme celui la ca serait un grand plaisir pour nous les ZEROS ;) .

from zero to hero
Hors ligne Michaeldu18 # Posté le 23/05/2007 à 20:30:45 - Ce membre a mis la note : 19
Avatar
Groupe : Membres
Pas mal du tout ce tutoriel, mais chez moi, j'ai un léger problème.

Lorsque je tape le nom du fichier a crypter, si il y a un espace dans ce nom, alors le programme me demande directement la clef, sans me demander le nom du fichier crypté. :(

Pourriez vous m'aider à ce sujet svp :D
Merci d'avance.

Sinon, pour le tuto, je le trouve très bon, ça mérite bien un 19/20. :)

Image utilisateur
Image utilisateur
Image utilisateur

 
Hors ligne ~rom15~@ # Posté le 04/06/2007 à 13:17:28 - Ce membre a mis la note : 20
I love astronomy
Avatar
Groupe : Membres
Le plus marant c'est le fichier ".txt" crypté, on comprend rien.
PS: comme ça, on peut faire un code secret à deviner :lol:

Secret (cliquez pour afficher)
Très, très, très, très bien.(20/20)

Vive l'astronomie :D
 
Hors ligne Botman # Posté le 06/06/2007 à 20:23:31 - Ce membre a mis la note : 17
Avatar
Groupe : Membres
Salut ! :)

C'est vrai que ton tuto est très bien et très interessant ! Une petite critique toutefois : ce tuto est destiné à des zeros (comme moi) il serait donc interessant de dire ce que veut dire "crypter" ?!! :D

Sinon bravo ! :p

Secret (cliquez pour afficher)
17/20 ! :-°

Tousse pour un, rhume pour tous !!! :'(

J'envie les rivières : elles peuvent suivre leur cours tout en restant dans leur lit !!! :p
 
Hors ligne Blade-974 # Posté le 13/06/2007 à 15:14:38 - Ce membre n'a pas mis de note
J'adore les sushis
Groupe : Membres
Pas mal comme tuto, mais comme a dit LunaA, ce n'est pas très sécurisé, en cela que la clé de cryptage apparaît dans le fichier crypté lol. Donc c'est vraiment un système à utiliser pour que les parents ne chopent pas les fichiers pas très catholiques du disque dur (quoi que si tes parents sont ingénieurs tu l'as dans l'os ^^). Sinon vivement d'autres systèmes de cryptage sur le sdz ;)

God bless Feisty Fawn
 
Hors ligne giovanni11 # Posté le 20/08/2007 à 01:25:23 - Ce membre a mis la note : 18
Let's keep smile in !
Avatar
Groupe : Membres
Je trouve ce tuto très bien pour débuter dans la crypto. Moi qui ait toujours cherché comment sa se passait, hé bien j'ai compris. Maintenant je vais tenter de créer un algo de cryptage a clés publiques infinies pour une seule clé privée. C'est beau de rêver :p
En tout cas, 18/20 ;)

Giovanni11
 
Hors ligne ironzorg # Posté le 30/09/2007 à 16:40:09 - Ce membre a mis la note : 20
Groupe : Membres
Tres bon.

20/20

Image utilisateur Image utilisateur
 
Hors ligne betteraves # Posté le 14/10/2007 à 21:34:14 - Ce membre a mis la note : 20
the best OS? linux naturally!
Avatar
Groupe : Membres
Très, très, bon tuto je trouve ça très intéressant :)
J'espère que d'autres zéros feront des tutos sur des algorithmes de cryptage plus sécurisées ça peut-être intéressant ^^
20/20 :D

Utilisez Veosearch à la place de google ou de votre moteur de recherche habituel :) news ici (descendez un peu)

Vous avez des questions ayant trait au Lycée (orientation, méthodes...)? Désormais, plus besoin de créer un nouveau sujet, posez-les dans le topic spécialement crée pour ça!
 
Hors ligne sebsheep # Posté le 04/11/2007 à 15:25:19 - Ce membre a mis la note : 17
Groupe : Membres
Un bon tuto !

Effectivement, le codage par XOR n'est pas tres efficace, mais je ne pense que c'était le but de ton tuto. Si vous voulez un cryptage vraiment efficace les gars, faites du RSA, y a que ca de vrai !

Sinon sur le code du programme ... tu déclares tes variables en global ... pourquoi ?? ici ca ne sert à rien! Surtout que pour appeler ta fonction tu passes les arguments bien proprement, je comprend pas ton utilisation des globales.

Dommage, ca m'empeche de te mettre 20 ... aller va pour un 17

A vaincre sans périls.... on triomphe sans probleme!
 
Hors ligne yudassen # Posté le 19/11/2007 à 19:29:52 - Ce membre a mis la note : 20
Graphiste et programeur
Avatar
Groupe : Membres
Superbe tuto.
Claire comprehensible bref SUPRBE
Citation : MOI
La cryptologie et l'art de rendres les chose ilisible de façon que seul celui qui à la "cle" peut la rendre lisible ;)


sinon master toto : reversible comme le xor, il y inv (1=0, 0=1) mais a part je ne crois pas ( ceci dit, le inv est un Xor dont la clé est 1 essai, tu verras :p .)


J'oubliais : 20\20

Grand Projet Discworld :
Executeur => ||||||||||
Construceur=> ||||||||||


La lumiere va plus vite que le son, c'est pourquoi certaine personne paraisse brillante jusqu'a ce qu'elle commence a parler

N'est-ce pas yudassen :p
 
Hors ligne brastir # Posté le 17/02/2008 à 14:03:49 - Ce membre a mis la note : 20
Groupe : Membres
C'est bon tuto de cryptographie qui sert surtout pour le jeu : ce qui est mon cas donc merci! Je met 20/20.
Hors ligne Brutus # Posté le 09/04/2008 à 00:29:45 - Ce membre a mis la note : 15
Graine de codeur
Avatar
Groupe : Membres
Bon tuto, mais pas évident pour de véritables novices ...

Mais je ne me permettrais pas de critiquer sans m'expliquer ;) .
Donc, ma première impression avant l'exemple était : "Erf ! déjà à l'exercice ... j'ai rien compris !" :lol:
Donc l'origine du problème se trouve avant l'exercice et en essayant de repérer précisément ce que je n'avais pas compris, afin de le faire partager à l'auteur de ce tuto (qui je pense est friant de l'améliorer ;) ), je me suis arreté sur quelques détails :
  • Bon, tout d'abord :
    Citation : Geo.669
    Voici la syntaxe pour comparer deux octets avec un XOR :
    Code : C - Afficher / masquer les numéros de ligne
    1. int xoring = 0x60 ^ 0x9B;

    Ici, deux valeurs hexadécimales sont comparées, et la variable xoring renverra en résultat le xor du chiffre hexadécimal 60 avec le chiffre hexadécimal 9B, c'est-à-dire : FB

    A la première lecture, je n'avais pas compris que "0x60" et "0x9B" étaient des exemples ... peut etre pourrais tu le préciser ainsi qu'expliquer son écriture (à quoi correspond le "0" en début ? le "x" au milieu ?)

  • Ensuite, tu parle de "clé de cryptage". Heureusement que tu as fourni un exemple, car nul part il est expliqué ce qu'est une clé de cryptage (pour cause, au début de l'exemple, je croyais que c'était un fichier... bon d'accord, en regardant la définition de key, j'aurais vite compris ^^ ). Tu dis juste sa fonction (c'est une règle pour crypter/décrypter). De ce que j'ai cru comprendre de l'exemple, c'est un ensemble de nombres hexadécimals quelconques... mais qui doit etre connue afin de pouvoir décrypter ensuite :p .

Voilà, pour le reste, je n'ai pas su déterminer avec précision ce que je n'avais pas très bien compris.



NOTE : Attention, je n'ai dit ici que les mauvais cotés de ton tuto pensant que seuls les mauvais cotés peuvent faire progresser. Mais il n'empeche que je suis comme les autres, sans ce tuto, je n'aurais jamais compris ce qu'est le décryptage ;) ! Mais peut etre pourras tu l'améliorer ... je l'espère (et surtout, j'espère que j'aurais pu t'aider un petit peu :) ).


Merci à toi Geo.669 pour ce Tuto ;)





EDIT : J'ai juste une petite question ...

Dans ton code, la variable "xoring" ne devrait elle pas etre du type char rigoureusement parlant ?

Code : C - Afficher / masquer les numéros de ligne
  1. /* Maintenant, on va décrire la fonction ReadXorAndWrite() */
  2. void ReadXorAndWrite(FILE *fin,FILE *fout,char key[30])
  3. {
  4.     char ch;
  5.     int xoring;
  6.     int i = 0;
  7.  
  8.     while(1)
  9.     {
  10.         if(!fread(&ch,sizeof(char),1,fin))
  11.             break;
  12.         else
  13.         {
  14.             if(key[i] == '\0')
  15.                 i = 0;
  16.  
  17.             xoring = ch ^ key[i];
  18.  
  19.             /* Et enfin on écrit dans fout la valeur de xoring ! */
  20.             fwrite(&xoring,sizeof(char),1,fout);
  21.         }
  22.         i++;
  23.     }
  24.  
  25.     /* On referme la fonction, et c'est la fin du code */
  26. }

Mieux vaut paraître un instant abrutit,
Que demeurer idiot toute sa vie !

Image utilisateur
 
Hors ligne martin9_36 # Posté le 24/05/2008 à 14:58:27 - Ce membre a mis la note : 17
Avatar
Groupe : Membres
Bon tuto :)

Une petite remarque quand même :
Citation : Geo.669
L'octet est tout simplement l'unité de mémoire de l'ordinateur.

Vrai sur les x86, mais il existe des familles de proc ou un byte comporte un nombre différents de bits.

Je met quand même 17. ;)

Image utilisateur
 
En ligne sadik # Posté le 19/06/2008 à 09:47:05 - Ce membre n'a pas mis de note
Groupe : Membres
bonjour

j' ai une question:
si ma clé est 10111011 et qu' un hacker essaye 1011, est-ce qu' il peut décrypter mon fichier ?


sinon Secret (cliquez pour afficher)
20/20

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 263 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0339s (0.0221s)