Graphiques
 
- Dégradé
- Animations BitBlt
- Animations Pic
- Contrôle Animation
- Défilement d'image
 
Interface
 
- Barre d'outils
- Barre de progression
- Clignotement
- Interface MDI
- Barre d'état
 
Texte & système
 
- Texte sur image
- Taille variable
- Informations système
 
Fichiers
 
- Grand fichier
- Choix de police
- Dictionnaire Word
- Listes
- Fichiers binaires
 
Souris et touches
 
- Curseur animé
- Touches
 

Encryptage de texte
Il arrive que, pour une raison ou pour une autre, on désire éviter que les utilisateurs puissent lire le contenu d'un fichier texte utilisé par un programme que l'on a créé. Il faut alors en coder le contenu. Cette fiche vous donnera un exemple de codage possible. Vous pourrez par la suite facilement inventer le vôtre: la limite sera votre imagination.
  1. Créez un nouveau projet que vous nommez Ex_22xx.vbp. Nommez la feuille (NAME) F_encodage et inscrivez Module d'encodage et de décodage comme texte pour la propriété CAPTION
  2. Ajoutez ensuite trois zones de texte comme dans le modèle plus bas dans cette page. Nommez-les ZT_Texte, ZT_Code et ZT_Decode. La propriété TEXT de chacune est vide. Les autres caractéristiques sont laissées à votre bon goût.
  3. Ajoutez deux boutons ayant pour nom (NAME) BO_Code et BO_Decode. Le texte de la propriété CAPTION du premier est CODER et celui du second, DÉCODER. Choisissez vous-même les autres caractéristiques. Voici un exemple de ce que vous devriez obtenir.

  1. Vous allez poursuivre en ajoutant le script qui permettra de coder le texte entré dans la zone ZT_Texte. 

    Le principe est le suivant:
    à l'aide des outils de traitement de chaîne de texte, on vérifie la position d'une lettre dans la chaîne à coder. Si celle-ci est paire, on remplace la lettre par le caractère se trouvant à deux positions avant dans dans le code ASCII. Par contre, si la position est impaire, on la remplace par le caractère se trouvant à trois positions plus loin. 

Exemple: 

  • La lettre est le c et sa position dans la chaîne est paire, elle est remplacée par le a.
  • La lettre est le c et sa position est impaire, elle est remplacée par le f.
  1. Voici le code à ajouter.

Private Sub BO_Code_Click()

   Dim V_code As String 
'Initialisation des variables
   Dim V_caract As String
   Dim V_caract1 As Integer
   Dim V_v As Integer
   Dim V_w As Integer
   'Placer le contenu de la zone de texte ZT_Texte dans la variable V_Code
   V_code = ZT_Texte
   For V_v = 1 To Len(V_code) 
'Boucle de la longueur de la chaîne V_Code
      V_caract = Mid(V_code, V_v, 1)  
'Sélection d'un caractère de la chaîne
      If V_caract <> " " Then  
'Si le caractère n'est pas un espace
         V_w = V_v Mod 2  
'Divise la position par 2 et trouve  le reste
          If V_w = 0 Then 
'S'il n'y a pas de reste (position paire)...
             V_caract1 = Asc(V_caract) - 2  
'attribution  de  la valeur ASCII - 2
          Else  
' sinon (position impaire) ...
             V_caract1 = Asc(V_caract) + 3  
'attribution  de  la valeur ASCII + 3
          End If
          V_caract = Chr(V_caract1) 
'Reconversion en caractère du code ASCII
       Else  
'Si le caractère est un espace
          V_w = V_v Mod 2  
'Divise la position par 2 et trouve  le reste
           If V_w = 0 Then  
'S'il n'y a pas de reste (position paire)...
              V_caract = Chr(95)  
'Remplacement par _
           Else  
' sinon (position impaire) ...
              V_caract = Chr(61)  
'Remplacement par =
           End If
       End If
       Mid(V_code, V_v, 1) = V_caract  'Réintroduction du code dans la chaîne
   Next V_v
   ZT_Code.Text = V_code  
'Insertion du texte codé dans la zone de texte ZT_Code
End Sub

  1. Enregistrez votre programme et testez-le en écrivant quelques mots dans la première zone de texte et en cliquant sur le bouton CODER. Vous obtenez une version codée de votre texte, illisible par qui que ce soit.
  2. Le bouton VO_Décode contient un script qui est le contraire du précédent. Le voici.

Private Sub BO_Décode_Click()
   Dim V_NonCode As String 
'Initialisation des variables
   Dim V_caract As String
   Dim V_caract1 As Integer
   Dim V_v As Integer
   Dim V_w As Integer
   V_NonCode = ZT_Code.Text  
'Initialisation de V_NonCode
   For V_v = 1 To Len(V_NonCode)
       V_caract = Mid(V_NonCode, V_v, 1)
       If V_caract <> "=" And V_caract <> "_" Then
         V_w = V_v Mod 2
          If V_w = 0 Then
            V_caract1 = Asc(V_caract) + 2
          Else
            V_caract1 = Asc(V_caract) - 3
          End If
          V_caract = Chr(V_caract1)
      Else
          V_caract = Chr(32)
      End If
      Mid(V_NonCode, V_v, 1) = V_caract
   Next V_v
   ZT_Decode.Text = V_NonCode
End Sub

  1. Enregistrez à nouveau votre programme et testez-le en écrivant un court texte dans la zone ZT_texte. Cliquez ensuite sur le bouton CODER, puis sur le bouton DÉCODER. La zone ZT_Decode devrait contenir le même texte que la première. Seul le texte de celle du centre diffère.  Comme de raison, il faudrait ajouter des fonctions de lecture et d'enregistrement de fichier pour que ce programme devienne vraiment utile.

Application:

  • Créez un nouveau code de votre cru pour remplacer celui donné dans l'exercice précédent (par exemple inverser les lettres, les mêler, etc.). Enregistrez le résultat sous le nom Ex_22bxx.vbp.

 

Création d'aide
 
- À propos
- Astuce du jour
 
Cryptage
 
- Mot de passe
- Cryptage de fichier
 
Base de données
 
- Bibliothèque
 
Winsock
 
- Serveur de chat
- Client de chat 1
- Client de chat 2
 
Jeu d'arcade
 
- Interface
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
 
Navigateur WEB
 
- Interface 1
- Interface 2
- Interface 3
- Interface 4
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
© Copyright 2002 - Design : Webmasters-fr.net