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

VB.NET Discussion :

Création d'une fonction de cryptage


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2011
    Messages : 124
    Par défaut Création d'une fonction de cryptage
    Bonjour a tous les forumeurs et forumeuses, je dois dans le cadre d'un projet réalisé une fonction qui dans un fichier texte, cryptera le texte présent grace à une clef de cryptage, puis dans un nouveau fichier texte, le décryptera.
    J'ai réussi ce programme, le problème, est qu'il ne fonctionne qu'avec des minuscules, j'aimerais pouvoir prendre en compte des majuscules. Si quelqu'un a une idée de comment faire, merci de bien vouloir me répondre =)

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    Public Class Form1
        Dim tableau(26, 26) As Char
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim x As Integer = 0
            For i As Int16 = 0 To 25 'i represente l'index de la ligne
                For j As Integer = 0 To 25 'j représente l'index de la colonne
                    If 97 + i + j = 123 Then x = 26 'une fois arrivée à 123,on repasse a 26
                    tableau(i, j) = Chr(j + 97 + i - x) 'les cordonnées du tableau retournent un caractere
     
                Next
                x = 0
            Next
     
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim normal As New IO.StreamReader("H:\Travail\Mon projet\exemple.txt") 'on lit le fichier text
            Dim crypte As New IO.StreamWriter("H:\Travail\Mon projet\crypte.txt")   ' on va écrire dans un nouveau fichier texe
            Dim i As Integer
            Dim j As Integer
            Dim x As Integer
            Dim y As Integer
            Dim g As Integer
            Dim p As Integer
            Dim toto As String = ""
            Dim cryp As String = ""
            g = Len(clef.Text)
            While normal.Peek > 0   'Pour le passage a la ligne
                toto = normal.ReadLine 'pour lire la ligne jusqu'au dernier caractere
                p = Len(toto)
                For i = 0 To p - 1
                    If exclusion(toto(i)) = True Then
                        x = Asc(toto(i)) - 97
                        y = Asc(clef.Text(j)) - 97
                        j = j + 1
                        If j > g - 1 Then
                            j = 0
                        End If
                        cryp = cryp & tableau(x, y) 'permet le cryptage grace au tableau précédent
                    Else
                        cryp = cryp & toto(i)
                    End If
                Next
                crypte.WriteLine(cryp)
                cryp = ""
            End While
            normal.Close()
            crypte.Close()
        End Sub
        Function exclusion(ByVal c As Char) As Boolean 'si le caractere n'est pas compris entre a et z, alors on le lit, puis on l'écrit sans le crypter.
            If Asc(c) < 97 Or Asc(c) > 122 Then
                Return False
            Else
                Return True
            End If
        End Function
     
        Private Sub Decryp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Decryp.Click
            Dim crypte As New IO.StreamReader("H:\Travail\Mon projet\crypte.txt") 'on lit le fichier crypté
            Dim decrypte As New IO.StreamWriter("H:\Travail\Mon projet\decrypte.txt") 'on écrira dans le nouveau fichier texte
            Dim n As Integer
            Dim p As Integer
            Dim i As Integer
            Dim j As Integer
            Dim x As Integer
            i = 0
            j = 0
            Dim cryp As String = ""
            Dim decryp As String = ""
            p = Len(clef.Text)
            While crypte.Peek > 0   'lit jusqu'au dernier caractere
                cryp = crypte.ReadLine  'pour lire la ligne
                n = Len(cryp)
     
                For i = 0 To (n - 1)
                    If exclusion(cryp(i)) = True Then
                        If Asc(clef.Text(j)) > Asc(cryp(i)) Then
                            x = (27 - (Asc(clef.Text(j)) - 97) + (Asc(cryp(i)) - 97)) - 1 ' la clef de décryptage
                        Else
                            x = Asc(cryp(i)) - 97 - (Asc(clef.Text(j)) - 97) ' deuxieme partie de la clef de décryptage.
                        End If
                        j = j + 1
                        If j > p - 1 Then
                            j = 0
                        End If
                        decryp = decryp & Chr(x + 97) 'écriture dans le fichier
                    Else
                        decryp = decryp & cryp(i) 'si la fonction exclusion est fausse alors on recopie, on ne décrypte pas
                    End If
                Next
                decrypte.WriteLine(decryp)
                decryp = ""
            End While
            crypte.Close() 'on ferme les deux fichiers
            decrypte.Close()
        End Sub
    End Class

    Pour plus d'informations et de compréhension sur le code, n'hésitez pas à me mp. Je vous remercie d'avance pour votre aide future

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,
    je ne comprend pas l’intérêt de ton tableau,
    il contient les caractères de a à z ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If 97 + i + j = 123 Then x = 26 'une fois arrivée à 123,on repasse a 26
    tableau(i, j) = Chr(j + 97 + i - x) 'les cordonnées du tableau retournent un caractere

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/03/2011, 11h54
  2. Problème pour la création d'une fonction
    Par jipé95 dans le forum C
    Réponses: 5
    Dernier message: 10/12/2006, 14h28
  3. Réponses: 16
    Dernier message: 24/10/2006, 21h37
  4. Création d'une fonction sans paramètre?
    Par falcon dans le forum Oracle
    Réponses: 3
    Dernier message: 13/12/2004, 11h32
  5. Réponses: 14
    Dernier message: 09/04/2004, 13h44

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