- '*********************************************************************
- ' 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
'*********************************************************************
' 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