Cryptage et décryptage simple de string

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 344 fois - Téléchargée 54 fois

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

Ajouter un commentaire

Commentaires

Dans le genre chiant en 150 exmplaires. Faut savoir arrêter un jour
cs_Douns
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
-
Le cryptage est un peu simple... on garde le même nombre de caractère. On se contente juste de changer le caractère ascii en fonction de la position.

Quand à ta fonction de cryptage impossible à décrypter, c'est faux. Elle est décryptable car elle est à peu près sur le même système que ta fonction décryptable... Mieux vaut utiliser le md5 (gratuit et efficace!)

un 5/10 pour le code qui peut toujours être interessant pour apprendre la base du cryptage.
Trainkill666
Messages postés
52
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
5 mai 2008
-
C'est suffisant, et très simple,
par contre lorsque je crypte " & ", il décrypte "_",
comment peut-on palier à cette erreur ?
saintnaej
Messages postés
16
Date d'inscription
vendredi 4 juillet 2008
Statut
Membre
Dernière intervention
11 août 2008
-
Code sympa quand on n'a pas besoin d'un codage très complexe.

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.