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
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.