IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Télécharger C Discussion :

cryptage et décryptage de texte par rotation de bits


Sujet :

Télécharger C

  1. #1
    Invité
    Invité(e)
    Par défaut cryptage et décryptage de texte par rotation de bits
    Bonjour,

    Je vous propose un nouvel élément à utiliser : cryptage et décryptage de texte par rotation de bits

    Il s' agit de deux routines cryptage et décryptage, contenues dans deux fichiers code.c et decode.c .
    Aucun environnement, je ne veux que vous faire découvrir cette méthode inviolable. J'avais demandé a des amis hackers de bon niveau de s' y attaquer, sans succès

    Dans le fichier zip vous trouverez:
    code.c et code.exe
    decode.c et decode.exe
    snoopy.h
    pour le moment il ouvre un fichier de nom fixe "decod" (sans 'e' )

    Donc bien entendu vous saurez l'inclure dans un "C" avec choix du fichier et "c" ou "d" en action ...
    Encore un point, testez le, pour cela prenez un fichier texte nommez le "decod" et lancez une seule fois , éditez le et voyez le résultat ! un coup de decode et tout est rétabli !

    bonne utilisation si cela vous plait,
    Qu'en pensez-vous ?

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 130
    Points
    28 130
    Par défaut
    Bonjour,

    Je n'ai pas specialement lu le code, mais si tu ne fais que la rotation de bits, ton algorithme ne devrait pas resister a une attaque par frequence de caracteres, si ?

    Et puis la rotation de bits, c'est la base des machines enigma, dont le code a ete casse sauf erreur de ma part.

    Peux-tu expliquer ton algorithme ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ton message.
    L'algorithme est si simple que tout programmeur en C peut en comprendre le sens, juste je voudrais te dire que ce n'est pas un article, mais un code posté selon les règles.

    Mais j'en reviens à l'essentiel de ta remarque il s'agit pour chaque caractère d'une rotation multiple et complexe de bits ! Je l'ais expliqué dans ma présentation, des amis qui adorent et excellent en codage, ne sont pas venu à bout de ce code

    Bon week-end à toi.
    Dernière modification par Invité ; 28/06/2013 à 17h53. Motif: Citation inutile du message précédent

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 369
    Points
    50 369
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Mais j'en reviens à l'essentiel de ta remarque il s'agit pour chaque caractère d'une rotation multiple et complexe de bits !
    J'ai pas résisté, j'ai regardé le code.

    En fait, il y a effectivement manipulation de bits mais un 'e' est toujours codé de la même manière que ce soit le 1er caractère, le 2eme ou peu importe. Donc cet algorithme ne résiste pas à une analyse par fréquence des caractères.

    De plus, comme tu donnes le programme de chiffrement, il est très facile d'établir la correspondance pour chaque lettre vu que la clé de chiffrement (constituée de tes décalages et autres manipulations) est inscrite en dur dans le code. On a donc affaire à un code de substitution mono-alphabétique un tout petit peu plus complexe mais guère plus.

    PS : au fait, en français, on chiffre et on déchiffre, les mots "crypter" et "décrypter" sont des barbarismes introduits en français par une mauvaise traduction du verbe anglais "to crypt"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci de ton message,
    Tu me mets un doute, cependant ta remarque ne prends pas en compte le fait que je sois obligée de restituer le code au retour
    En conséquence nous ne pouvons aller trop loin, c'est différent par exemple du traitement des mots de passe.

    Pour le reste il me parait bien pratique et suffisant par exemple lors d'un envoie d'un texte par mail par exemple.

    Bon week-end et mille mercis de t'étre intéressé a mon modeste code

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 130
    Points
    28 130
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Pour le reste il me parait bien pratique et suffisant par exemple lors d'un envoie d'un texte par mail par exemple.
    Si tu ne veux pas que le voisin le lise, oui, c'est suffisant. Sinon, pourquoi ne pas utiliser PGP ?
    Il existe meme un module pour les webmails : mailvelope (disponible uniquement pour chrome pour le moment).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je pensais que montrer dans un code réalisé par moi, comment se pratique la rotation de bits, pourrait être utile a beaucoup de lecteurs qui cherchent un moyen de le faire, maintenant que cela mérite un vote négatif ? cela m'étonnes surtout que je suis en générale courtoise et serviable je penses.
    Dernière modification par Invité ; 02/07/2013 à 12h16.

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Je pensais que montrer dans un code réalisé par moi, comment se pratique la rotation de bits, pourrait être utile a beaucoup de lecteurs qui cherchent un moyen de le faire, maintenant que cela mérite un vote négatif ? cela m'étonnes surtout que je suis en générale courtoise et serviable je penses.
    Non non ne t'inquiète pas, j'ai pas encore regardé ton code mais ça peut très bien figurer dans la page sources de la rubrique. Le but étant de partager des codes qui peuvent êtres réutilisés par d'autres personnes ou juste montrer des exemples d'implémentations, je n'y vois aucune objection, du moment que le code soit commenté

    [EDIT]
    Bon j'ai juste survolé le code mais c'est pas très propre tout ça. Ca manque d'indentations, de commentaires (il n'y aura pas que des pro qui vont lire les codes)

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Bon j'ai juste survolé le code mais c'est pas très propre tout ça. Ca manque d'indentations, de commentaires (il n'y aura pas que des pro qui vont lire les codes)
    Merci de ta réponse claire, je pense en effet l'améliorer ce code, et surtout mieux le commenter.

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Merci de ta réponse claire, je pense en effet l'améliorer ce code, et surtout mieux le commenter.
    Et mieux le présenter aussi:
    • Ligne vide entre les fonctions
    • Indentation de minimum 3 espaces pour chaque bloc de code

    -

  11. #11
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Points : 10 188
    Points
    10 188
    Par défaut
    Si je peux rajouter quelques conseils.

    Déjà le "snoopy.h" , mmh ce n'est pas comme cela qu'on fait un .h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    /*    snopy.h    */
    #include <windows.h>
    #include <windowsx.h>
    #include <commctrl.h>  
    #include <ctype.h>
    #include <conio.h>
    #include <dlgs.h>    
    #include <direct.h>
    #include <dos.h>
    #include <io.h>
    #include <fcntl.h>
    #include <math.h>
    #include <malloc.h>
    #include <memory.h>
    #include <mmsystem.h>
    #include <process.h>
    #include <shellapi.h>
    #include <signal.h>
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <sys/types.h>
    #include <sys/timeb.h>
    #include <sys/stat.h>
    En général on déclare les fonctions et les structures utilisées.
    L'autre point : il y a trop d'includes inutiles.

    Après comme l'a dit Franck.H, l'indentation est a revoir.
    Et le gros point négatif il y a des variables globales, c'est vraiment déconseillé et on peut s'en passer ici (surtout sur un code qu'on veut réutiliser , c'est clairement pas le bon moyen, surtout sur un petit programme) .

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je m'adresse à vous tous et toutes, juste pour vous dire que je ne pensais pas avoir tant d'attention et de conseils, j'en suis heureuse et j'en prend bonne note même si j'ai un peut honte d'avoir posté manifestement trop vite.
    Ce n'est pas une excuse, mais si vous m'avez croisé sur PHP,PDO etc... il est certain que j'y suis plus a l'aise !
    Merci encore, ce sera amélioré ce mois-ci.

  13. #13
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 489
    Points : 13 710
    Points
    13 710
    Billets dans le blog
    1
    Par défaut
    Personnellement, j'aimerais bien comprendre ce commentaire :
    // CODE.C revu version 32bits le 30/10/1996 par Christele
    comparativement à cette phrase :
    j'ai un peut honte d'avoir posté manifestement trop vite

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Personnellement, j'aimerais bien comprendre ce commentaire :
    Bon j’arrête car cela tourne au trol ... pour ne pas dire acharnement, étonnant pour un modérateur
    Oui je garde ce code que j'utilises dans des programmes en C que j'écris, module écrit il y a longtemps, et que j'ais trouvé intéressant d'extraire. Et donc à ce sujet je vous exprimait mon sentiment que j'aurais du lors de cette diffusion, le "rafraîchir" voir le mettre au gout du jour, tu n'est pas sans savoir qu'en pré de 20 ans nous avons bien progressé toute et tous.

  15. #15
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 489
    Points : 13 710
    Points
    13 710
    Billets dans le blog
    1
    Par défaut
    Non, ceci n'est pas un troll. Ne parlons pas d'acharnement, c'est mon premier message. Modérateur ou pas modérateur, j'ai le droit de donner un avis même si celui-ci est négatif. D'ailleurs, en temps que modérateur, on me demande de garantir le bon fonctionnement des forums et de viser une certaine qualité des contenus, j'ai donc le droit d'interroger sur la qualité des contenus. Mais de toute façon, l'avis que j'exprime ici n'a de toute façon pas à voir avec mon rôle de modérateur.

    Je trouve très bien de poster des sources pour donner du code aux gens pour qu'ils puissent s'y référer et en apprendre. En revanche, quand j'entends "j'ai posté un peu vite" pour justifier des manques dans un fichier source alors que je lis un commentaire "écrit en 1996", je me pose des questions.

    Avant de poster un article ou du source, il faut prendre le temps de le relire, de bien le présenter, pourquoi pas demander des avis, on le retravaille. Tout cela se fait dans l'optique de proposer du code de qualité.

  16. #16
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Points : 23 198
    Points
    23 198
    Par défaut
    Bonjour,

    je ne veux que vous faire découvrir cette méthode inviolable
    Est-ce que vous ne devriez pas éditer cette phrase (ou demander son édition) ?

    Parce que bon, je ne veux pas mettre en doute les capacités de vos "amis hackeurs", mais je peux vous assurer que cette méthode est très loin d'être inviolable et ne nécessite pas de très grandes connaissances pour le casser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (fgets (leficlu[leficnbr],256,ptfic) != NULL) leficnbr=leficnbr+1;

    Et l'allocation dynamique ? Si le fichier est plus grand que prévu il se passe quoi?
    Sinon, vous ne connaissez pas leficnbr++; ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if((ptfic=fopen(lefic,"w"))!=NULL)  fclose(ptfic);
    if((ptfic=fopen(lefic,"a"))!=NULL)
    Pourquoi l'ouvrir deux fois ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      for (nbr=0;nbr<leficnbr;nbr++) fprintf(ptfic,leficlu[nbr]);
    Pourquoi ne pas utiliser fwrite voir même fputs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       resultat=lachaine[i]; //le caractere [i]
       nbr=resultat;         // sa valeur ASCII
    La deuxième ligne montre que vous n'avez pas compris le fonctionnement des char qui sont aussi des entiers.

    resultat -= 80; ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(nbr>126 && nbr<165) resultat=nbr+86; 
           if(nbr>164 && nbr<245) resultat=nbr-132;
           if(nbr>244 && nbr<251) resultat=nbr-38;
    Pourquoi ne pas mettre des else if ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FILE *ptfic;
    unsigned char lefic[400],leficlu[97100][400];
    unsigned int  leficnbr;   //nombre de ligne du fichier
    des vilaines variables globales.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void main(void)
    {
    unsigned int nbr;
    char faire;
    strcpy(lefic,"decod");
    faire='d';
    lire();
    for(nbr=0;nbr<leficnbr;nbr++)  decrypte_crypte(leficlu[nbr],faire);
    ecrire();
    return;
    }
    L'indentation



    Sinon, quid des gestions d'erreurs ? Pourquoi les fonctions n'ont-elles pas de commentaires ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Et mieux le présenter aussi:
    • Ligne vide entre les fonctions
    • Indentation de minimum 3 espaces pour chaque bloc de code
    Bonjour,enfin j'ai terminée,mille mercis à toi Franck.H de m'avoir donné la structure type tel que le veux la rigueur de codage, ainsi que la réorganisation de mon code.
    J'ais ainsi pu modifier et recompiler mes deux petits "C" j'ais refait le ZIP à télécharger, qui est en place.
    Merci encore de votre vigilance, et souhaitons comme le disait Franck.H que bientôt l'étape de correction sera en place avant publication, comme nous le pratique déjà pour les Articles.

  18. #18
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut

Discussions similaires

  1. [XSL-FO] texte avec rotation
    Par minou2005 dans le forum XSL/XSLT/XPATH
    Réponses: 15
    Dernier message: 21/03/2008, 10h27
  2. [HTML] remplissage de ma zone de texte par mot composé?
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/09/2005, 17h59
  3. Réponses: 4
    Dernier message: 31/08/2005, 01h32
  4. [HTML][CSS] Ecrire du texte par dessus un tableau.
    Par Joad dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 14/04/2005, 03h32
  5. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo