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

Algorithmes et structures de données Discussion :

Crypter une chaine


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut Crypter une chaine
    Je recherche un algo simple mais assez efficace de cryptage de chaine de caracteres et, de maniere plus generale de tableaux de bits.

    On m'a parler d'un algo de cryptage a base de clef "tournante" qui consiste a faire un decalage a gauche d'un bits de la clef, puis inserer l'inverse du ou exclusif entre le bit7 et le Bit5 de cla clef.

    Cet algo est sense generer 256 clefs differentes avant de retomber sur la meme. mais cela ne marchepas (au mieux 32 valeurs)

    Si quelqu'un a une modification a apporter ou une autre idee, je suis preneur

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    si tu veux crypter quelque chose, ne bidouille pas un truc toi meme, c'est une règle de base. il existe suffisamment d'algorithmes publiques, reconnus et sur, et on en trouve suffisamment d'implementations sur le net pour que tu n'ai pas a prendre le risque d'utiliser un systeme "maison" qui ne fera jamais tres long feu..

    en vrac, regarde : AES, blowfish, twofish, par exemple. AES est un peu tordu, mais les 2 autres sont relativement simples a implementer (basé sur le tres ingenieux et simple a comprendre schema de Feistel).

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par jobherzt
    si tu veux crypter quelque chose, ne bidouille pas un truc toi meme, c'est une règle de base.
    Oui ca je sais
    Mais ce que je cherche c'est pas de la protection de données en soit, mais masquer les chaines de caracteres un peu sensible qui sont soit affectees a des constantes, soit ecrite dans un fichier binaire de notre cru.

    Dans un cas comem dans l'autre les chaines apparaissent en clair quand l'exe ou le fichier est ouvert en mode hexa (voir meme sous blocnote).

    Ce sont des chaines de messages d'erreur, des paragraphes de "cours", des numeros de serie pour activer le module 3D tiers, etc ...

    Pour ce qui concerne les fichiers c'est pour rendre illisible de prime abort un fichier image par exemple inclue en tant que ressource. LE tout est qu'une fois extrait, il ne faille pas simplement cliquer dessus pour l'ouvrir.

    MEs besoins sont simple
    J'ai actuelement en place une focntion a base XOR sur clef unique, et on m'a parlé de cette methode de calcul de clefs assurant une boucle sur les 256 valeurs a partir de la clef de base. Pourquoi s'en priver

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pseudocode
    Tiny Encryption Algorithm (TEA) <--
    http://www.simonshepherd.supanet.com/tea.htm
    Bravo pour la référence ! L'algo est si simple qu'il vaut d'être recopié en clair :

    cryptage :
    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
    void encipher(unsigned long *const v,unsigned long *const w,
       const unsigned long *const k)
    {
       register unsigned long       y=v[0],z=v[1],sum=0,delta=0x9E3779B9,
    				a=k[0],b=k[1],c=k[2],d=k[3],n=32;
     
       while(n-->0)
          {
          sum += delta;
          y += (z << 4)+a ^ z+sum ^ (z >> 5)+b;
          z += (y << 4)+c ^ y+sum ^ (y >> 5)+d;
          }
     
       w[0]=y; w[1]=z;
    }
    décryptage :
    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
    void decipher(unsigned long *const v,unsigned long *const w,
       const unsigned long *const k)
    {
       register unsigned long       y=v[0],z=v[1],sum=0xC6EF3720,
    				delta=0x9E3779B9,a=k[0],b=k[1],
    				c=k[2],d=k[3],n=32;
     
       /* sum = delta<<5, in general sum = delta * n */
     
       while(n-->0)
          {
          z -= (y << 4)+c ^ y+sum ^ (y >> 5)+d;
          y -= (z << 4)+a ^ z+sum ^ (z >> 5)+b;
          sum -= delta;
          }
     
       w[0]=y; w[1]=z;
    }

Discussions similaires

  1. Crypter une chaine de caractère
    Par davels dans le forum Delphi
    Réponses: 14
    Dernier message: 28/05/2020, 14h34
  2. [C# 2.0] Comment crypter une chaine ?
    Par Khrysby dans le forum C#
    Réponses: 7
    Dernier message: 24/08/2012, 19h07
  3. crypter une chaine de caractère
    Par tiboo dans le forum C++
    Réponses: 27
    Dernier message: 08/03/2008, 18h49
  4. [C#] crypter une chaine de caractère
    Par FraktaL dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/08/2006, 21h23
  5. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 20/11/2004, 00h04

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