Cryptage et décryptage simple de string

Contenu du snippet

La fonction suivante effectue deux sortes de cryptage, soit un cryptage pouvant être décrypté avec cette même fonction. Soit un cryptage qu'on ne peut décrypter.

Ce deuxième mode doit être utilisé comme le système de mot de passe sous Unix. C'est à dire que pour tester un mot de passe (par exemple) alors que le mot de passe crypter se trouve dans un fichier, on compare le mot de passe entré par l'utilisateur APRES CRYPTAGE avec la chaine se trouvant dans le fichier.

Dans ce cas là, on ne peut plus récupéré un mot de passe oublié, on est obligé de l'écraser par un nouveau.

Source / Exemple :


'*********************************************************************
' Fonction de cryptage décryptage
' -------------------------------
' Le mode indique le mode de cryptage:
'  1 -> Cryptage qui peut être décrypté par la suite
'  2 -> Cryptage unique
' Le booléen cryptage est à vrai si il faut crypter et à false si il faut décrypter
'*********************************************************************
Public Function EasyCrypt(Entree As String, mode As Integer, cryptage As Boolean) As String
    ' Variables locales
    Dim sortie As String
    Dim pos As Integer
    Dim offset As Integer
    Dim a_traiter As String
    Dim a_traiter2 As String
    Dim taille As Integer
    Dim pret As Integer
    
    sortie = ""
    
    ' Teste si il faut crypter ou décrypter
    If cryptage = True Then
        If mode = 1 Then
            ' Initialisation
            pos = 1
            taille = Len(Entree)
            ' Boucle de cryptage de la chaine
            While pos <= taille
                ' Extrait la chaine à traiter
                a_traiter = Mid(Entree, pos, 1)
                sortie = sortie & Chr(Asc(a_traiter) - offset)
                ' Prépare le passage suivant
                offset = offset + 1
                If offset = 3 Then offset = 1
                pos = pos + 1
            Wend
        Else
            ' Initialisation
            pos = 1
            taille = Len(Entree)
            ' Boucle de cryptage de la chaine
            While pos <= taille
                ' Extrait la chaine à traiter
                a_traiter = Mid(Entree, pos, 1)
                If pos > 1 Then a_traiter2 = Mid(Entree, pos - 1, 1) Else a_traiter2 = "A"
                pret = Asc(a_traiter) + Asc(a_traiter2) + offset
                If pret > 255 Or pret < 0 Then pret = "z"
                sortie = sortie & Chr(pret)
                ' Prépare le passage suivant
                offset = offset + 1
                If offset = 10 Then offset = 1
                pos = pos + 1
            Wend
        End If
    Else
        ' Initialisation
        pos = 1
        taille = Len(Entree)
        ' Boucle de décryptage de la chaine
        While pos <= taille
            ' Extrait la chaine à traiter
            a_traiter = Mid(Entree, pos, 1)
            sortie = sortie & Chr(Asc(a_traiter) + offset)
            ' Prépare le passage suivant
            offset = offset + 1
            If offset = 3 Then offset = 1
            pos = pos + 1
        Wend
    End If
    
    ' Retourne le résultat de la fonction
    EasyCrypt = sortie
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.