begin process at 2012 02 13 00:29:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > PROGRAMME DE CRYPTAGE SIMPLE ( XOR / ROT )

PROGRAMME DE CRYPTAGE SIMPLE ( XOR / ROT )


 Information sur la source

Note :
8 / 10 - par 4 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Niveau :Débutant Date de création :20/07/2005 Vu / téléchargé :12 588 / 1 220

Auteur : elguevel

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Programme en C montrant l'utilisation du XOR et du ROT, et la combinaison des deux pour le cryptage de fichiers.

Ses methodes de codage sont peu fiables en terme de securité mais sont de bon cas d'école pour debuter la cryptographie.

Le C n'etant pas mon langague de prédilection c'est peu etre mal optimisé ! mais vos commentaires sont la pour çà ...



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip ENVOI ET TELECHARGEMENT FTP EN LIGNE DE COMMANDE

 Sources de la même categorie

PROJET DE CRYPTOGRAPHIE: RSA À JEU REDUIT D'INSTRUCTION par samatarahmed
Source avec Zip Source avec une capture CRYPTOSYSTÈME ELGAMAL LIBRAIRIE GMP par louelh95
Source avec Zip Source .NET (Dotnet) NOUVEL ALGORITHME D'ENCRYPTION-DÉSENCRYPTION DYNAMIQUE (INFA... par vletktol
Source avec Zip A2DCRYPT - CRYPTAGE 2048 BITS par darkor
Source avec Zip Source avec une capture CRYPTEUR-DÉCRYPTEUR-IP par antho974

Commentaires et avis

Commentaire de BruNews le 20/07/2005 10:49:49 administrateur CS

Salut,

on ne teste pas l'existence d'un fichier sur le fait de savoir si on peut l'ouvrir ou non, si un autre prog l'a ouvert avant en mode exclusif, ta fonction répond de manière totalement erronée.
if(0 > (long)GetFileAttributes(szfile)) ABSENT

Pour le reste, faut avouer qu'une boucle XOR présente peu d'intérêt.

ciao...

Commentaire de elguevel le 20/07/2005 11:23:03

cassé :-s

Commentaire de MuPuF le 20/07/2005 12:41:36

bah, il veut dire que apres tu dois continuer, c'est que le debut le XOR, moi je fais un xor de tout les chars puis je mélange des caracteres suivant la cléé puis je recommence encore une fois le mélange mais d'une autre maniere, le type qui trouvera comment j'ai fait méritera bien de lire des msg a la con ou meme des images pour un jeu, sachant que j'arrive a encoder 30 Mo/s de fichier, donc ça arrache..

Commentaire de elguevel le 20/07/2005 13:12:08

non mais je deconne en disant "cassé" car j'poste la source et j'ai une reponse 30 secondes après. (au moins les modo sont efficaces .. bravo)

Mais bon j'ai precisez dans les commentaires que j'etait pas très bon en C donc qu'il manquait d'"optimization" donc pour l'histoire de l'existance du fichier j'ai fait comme j'ai pu.

Et pour le XOR je dirai pas que çà sert a rien car comme je l'ai precisez, c'est un cas d'ecole pour les debutant .. et puis le but de ce site est d'apprendre et partager, non pas faire des programmes de fous pour en mettre plein les yeux :D

Mais je ne prend pas mal les critiques du tout, au contraire çà me fait avancer ;-)

Merci à tous.

Commentaire de AlexMAN le 20/07/2005 13:55:23

Moi je pense, qu'une optimisation possible, serait de traiter, non pas chaque caractere, mais plutot un groupe de 4 (4 char == 4 octets == 1 int) d'ou, au lieu de ta boucle, un truc du genre :

for (i = 0; i < dwSize; i += 4) {
  *((DWORD *)(szFile + i)) ^= CLE;
}

Tu reduis par 4 le nombre de passages dans ta boucle (qui est la principale lenteur de ton prog) donc c'est tout bénef :)
C'etait juste une petite remarque, il y a certainement BEAUCOUP mieux, mais c'est un truc qui m'est venu a l'esprit en voyant ta source.

Si tu as du mal avec la syntaxe utilisée, demande.

  

Commentaire de MuPuF le 20/07/2005 18:00:06

bah, la lenteur c'est le disque dur lol, le pross ne sera que tres peu solicité ici. Avec l'algo que j'avais créé (cf plus haut) le pross était utilisé a 10% c'est le disque qui rammait (entre guillemet quand meme car 30Mo/sec ...).

Le prob avec ton algo AlexMAN c'est qu'il faut que ton fichier soit un multiple de 4 ... donc tu dois faire des tests et corriger en cas d'erreur, quel bazars ! Mais sinon ça peux etre sympa, coder 4 char sur 1 integer, si un autre type trouve ça ben chapeau lol, rien que ça ça suffirait pour empecher 99.99999% de toutes les personnes qui essairaient de le lire.

Commentaire de BruNews le 20/07/2005 18:15:37 administrateur CS

on a dwsize, taille fichier.
DWORD *pbits, *pout;
pmem = (BYTE*) VirtualAlloc(0, dwsize, MEMDISPO, PAGE_READWRITE);
pbits = (DWORD*) pmem;
pout = pmem + dwsize;
while(pbits < pout) {
  *pbits ^= CLE;
  pbits++;
}

Ainsi la solution AlexMAN ne posera pas de problème car VirtualAlloc résulte toujours correctement aligné et multiple de 4, suffit de retamponner dwsize octets dans le fichuier.

Commentaire de elguevel le 21/07/2005 09:24:47

bon en ce moment je bosse donc j'ai pas trop le temps, mais dès que j'ai un moment j'me pencherai sur une solution de ce genre. On fera un programme correct :)

Sinon j'avais penssé à un codage aléatoire, ou chaque bloc (de 4 ou 8 par exemple) serai codé avec une clé aléatoire differente pour chaque bloc, et la clé serai a chaque fois ecrite avec la chaine crypter pour pouvoir le décrypter, bon çà multiplie la taille du fichier résultant mais bon...

Commentaire de ThreaT le 03/08/2005 19:00:30

MAIS WHAT THE FUCK !

MDR ! Alors comme ça on post ses PTI sur le web &#61514; petit filou vas ;)

J’étais en train de chercher des petites sources peinard pour mon nouvel élève, et sur quoi je tombe &#61514; excellent.

J’ai parcouru vite fais ton proj, c'est pas mal du tout :p
(Commentaires, code aéré, arguments espacés, interface tranquille,…)
Ce petit mois de cours n’aura pas été inutile.

J’espère que tu continues à t’acharner sur ton F7, et que tu n’as pas viré de bords en reprenant un langage obscur, pseudo compilé dont je tairais le nom.

Sinon j’ai sortie un ptit freeware si tu veux jeté un œil : http://entreprise.01net.com/windows/Utilitaire/reseau/fiches/32047.html

Passe à la maiz un de ces 4, je te montrerais les sources si tu veux tripper, ça peut te donner des idées.

Amuse toi bien, et passe de bonne vacance.
@+

Commentaire de elguevel le 10/08/2005 19:00:55

AH Na mais merde...

Mais qu'est ce que tu fou là :D moi qui penssais vraiment pas que tu t'inscrirai sur ce (genre de) site.

En tout cas cette source je te la dédie car c'est toi qui à fait tout le boulot en m'apprenant çà :-) J'en avait fait une PTI au debut de l'année et vu que çà allait finir à la poubelle, je l'ai posté ici pour qui veux apprendre.

Sinon en ce moment le C je tatte plus trop, je suis retourné un peu sous Delphi [www.delphifr.com] (obligé, pour cause de manque de Skill) et j'ai des trucs a faire pour la boite (en VB :s dsl).

La j'apprend Java, Admin. Oracle et la POO (quelle merde), car je vais en avoir besoin pour ma liscence.

Voila Voila, j'te recontacterai par mail à l'occase, et oui faut vraiment que je reprenne quelques cours :)

Sinon ton freeware, je l'avait déja pris y'a un moment (sur le site de ta boite) mais pas encore eut le temps de m'y penché, j'suis moins sur mon PC en ce moment. Mais j'y jetterai un coup d'oeil promis :) çà à l'air bien balaize :)

PS : Bravo tu as amélioré ton orthographe, ta pris des cours ?

@++

Commentaire de maladedede le 01/09/2006 02:41:30

Bonjour
C'est une bon code :)

Mais il y a quelque chose que je ne comprend pas trop dans le cryptage ROT je vois:
pFileBase[i] += PR_CLE;
pFileBase[i] c'est octect et un octect peut prendre 256 valeur décimal je crois :s
Alors je vois pas comment on peut ajouter a l'octet "pFileBase[i]" une valeur "int" qui peut largement dépasser 255 :s

A moins que lorsque l'octect arrive a la valeur 255+1 il se remet sur zero :/  Mais si c'est le cas ca veut dire qu'il n'y a que 256 clée possible et donc c'est vite cracké comme cryptage...

Expliquez-moi svp^^
Voila merci :)

Commentaire de spidermario le 07/12/2006 12:48:33

Ça vient peut être de moi mais pour la méthode -= ^= += je vois le même code pour le cryptage et le décryptage...

Dans ce cas à quoi sert ce if(bSens) ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales