begin process at 2008 07 06 13:00:16
1 205 544 membres
121 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PROGRAMME DE CRYPTAGE SIMPLE ( XOR / ROT )


Information sur la source

Description

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 çà ...
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    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...

  • signaler à un administrateur
    Commentaire de elguevel le 20/07/2005 11:23:03

    cassé :-s

  • signaler à un administrateur
    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..

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.

      

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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...

  • signaler à un administrateur
    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.
    @+

  • signaler à un administrateur
    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 ?

    @++

  • signaler à un administrateur
    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 :)

  • signaler à un administrateur
    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

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS