Ajout de clés cryptées dans le registre

Contenu du snippet

code parfois bien utile quand il s'agit d'informations sensibles comme les mots de passes. Certains me diront que l'on peut supprimer les clés mais si on mettait les pwd dans un fichier ce serait aussi facile... Le cryptage en lui même n'est pas de moi : je ne sais plus de qui il est.
Code a mettre dans un module

Source / Exemple :


Private Const SAppli = app.exename
Private Const SPass = "unzolipasswordlepluslongpossible..."

Public Sub SSavesetting(ByVal SSection As String, ByVal SClé As String, ByVal SValeur As String)
SValeur = Cryptage(SValeur, SPass)
SaveSetting SAppli, SSection, SClé, SValeur
Exit Sub
End Sub
Public Function SGetSetting(ByVal SGsection As String, ByVal SGclé As String) As String
Dim SGvaleur As String
On Error GoTo SGErreurs
SGvaleur = GetSetting(SAppli, SGsection, SGclé)
SGvaleur = Decryptage(SGvaleur, SPass)
If SGvaleur = "" Then
SGvaleur = "erreur2$$256"
End If
SGetSetting = SGvaleur
Exit Function
SGErreurs:
Debug.Print Err.Number & Err.Description
SGetSetting = "erreur2$$256"
End Function
Private Function Cryptage(Textnoncrypter As String, Motdepasse As String) As String
    Dim a, b, Textcrypter, Incr, TeXtec, okm, z, w
    z = 0
    For Incr = 1 To Len(Textnoncrypter)
    'C'a, c pour effectuer le code suivant le nombre de
    'caractère ke contient le texte
        TeXtec = Mid$(Textnoncrypter, Incr, 1)
        'Là, c pour lire le caractère du texte
                a = Asc(TeXtec)
                'Je transforme le caractère alphabétique en
                'caractère ASCII
                z = z + 1
                    If z > Len(Motdepasse) Then
                    z = 1
                    'Kan le mot de passe a été lu, on recommence à
                    'son premier caractère
                    End If
                    
                okm = Mid$(Motdepasse, z, 1)
                'On lit le caractère du mot de passe
                b = Asc(okm)
                'On prend son code ASCII
                w = a + b
                'On additionne le code ASCII du texte et du mot de passe
                    If w > 255 Then
                    w = w - 255
                    'Au cas où l'addition dépasserai 255, on retire 255
                    End If
        Textcrypter = Textcrypter + Chr(w)
        'On additionne les lettres cryptés ki sont
        'retransformées en caractère "lisible" mais crypté
            Next Incr
            'on fait de même pour la lettre suivante du texte à crypter
    Cryptage = Textcrypter
    'Et on affiche le texte crypté ki ne ve plus rien dire
End Function

'Le décryptage est le même avec la démarche inverse
'on part du texte crypté, on le transforme en ASCII
'On enlève l'ASCII du mot de passe et on obtient
'l'ASCII du texte décrypté kon rechange en caractère lisible.
Private Function Decryptage(Textcrypte As String, Motdepasse As String) As String
    Dim a, b, Textdecrypter, Incr, TeXtec, okm, z, w
    z = 0
    For Incr = 1 To Len(Textcrypte)
        TeXtec = Mid$(Textcrypte, Incr, 1)
                a = Asc(TeXtec)
                z = z + 1
                    If z > Len(Motdepasse) Then
                    z = 1
                    End If
                okm = Mid$(Motdepasse, z, 1)
                b = Asc(okm)
                w = a - b
                    If w < 0 Then
                    w = w + 255
                    End If
        Textdecrypter = Textdecrypter + Chr(w)
            Next Incr
    Decryptage = Textdecrypter
End Function

Conclusion :


NB: Pour des prog plus "secure" mieux vaux utiliser un cryptage plus puissant

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.