Info Cryptage

c_charly Messages postés 21 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 8 septembre 2005 - 8 sept. 2005 à 12:32
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 8 sept. 2005 à 12:58
Bonjout tout le monde,
j'aimerai savoir s'il existe dans VB une fonction qui permet de crypter une chaine ...
car ca me permettrai de pas créer une fonction dédiée a cela.
Par la meme occasion, si elle existe : quelle est la fonction de décryptage

Merci

2 réponses

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
8 sept. 2005 à 12:43
Violent Ken

Salut.


Non, il n'existe pas de fonction déjà faite dans VB. Tu doit donc la créer.
Tappes "cryptage" dans le moteur de recherche du site, et tu trouveras plein de sources pour te donner des idées. Il y a aussi un tuto. super bien fait de Proger, jette un coup d'oeil.
@+
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2005 à 12:58
salut,
tout dépend de ce que tu veux.
si c'est juste pour "masquer" un mot de passe dans un fichier texte, pour ne pas pouvoir le lire à l'oeil nu, tu peux le "coder" plutôt que le cryper.

dans çà cas, tu peux utiliser les calculs VB.

par contre, si c'est vraiment du cryptage, il faut soit faire ton propre algo, soit directement utiliser des cryptages existants (MD5 pour le plus connu, souces disponible sur ce site)

voici un petit "codage" très basique qui converti chaque caractère en son triple de valeur ascii, séparés par des points.
(bien utile pour MDP en fichier ini, rapide, mais décryptable sans aucun problème)


'#####################
'## dans une Form ##
'#####################

Private Sub Command1_Click()
'encode "BONJOUR"
Dim Encode As String
Encode = TranslatePass(LettersToNumbers, "BONJOUR")
Debug.Print "BONJOUR = " & Encode
MsgBox Encode
End Sub

Private Sub Command2_Click()
'décode "334.353.318.100.698.678.103.314.342.340.308.360.328.347.345.346.320"
Dim Decode As String
Decode = TranslatePass(NumbersToLetters, , "334.353.318.100.698.678.103.314.342.340.308.360.328.347.345.346.320")
Debug.Print "334.353.318.100.698.678.103.314.342.340.308.360.328.347.345.346.320 = " & Decode
MsgBox Decode
End Sub

'######################
'## dans un Module ##
'######################

'types
Public Enum TransPassConst
LettersToNumbers
NumbersToLetters
End Enum

'retourne le Mot De Passe en Chiffres ou en Lettres (pas crypté, juste pas lisible à l'oeil nu)Public Function TranslatePass(How As TransPassConst, Optional Letters As String "NONE", Optional Numbers As String "NONE") As String If (Letters "NONE") And (Numbers "NONE")) Then GoTo ERRORTRANS

Dim Carac() As String, i As Integer
TranslatePass = ""
On Error GoTo ERRORTRANS
If How = LettersToNumbers Then 'on converti les lettres en chiffres
For i = 0 To Len (Letters) - 1
TranslatePass = TranslatePass & (Asc(Mid(Letters, i + 1, 1)) * 3 + i + 1) & "."
Next i
TranslatePass = Left (TranslatePass, (Len(TranslatePass) - 1))
Else 'on converti les chiffres en lettres
Carac = Split(Numbers, ".")
TranslatePass = ""
For i = 0 To UBound (Carac)
TranslatePass = TranslatePass & Chr(Carac(i) - i - 1) / 3)
Next i
End If
Exit Function

ERRORTRANS:
TranslatePass = "ERROR"
End Function



<SMALL> Coloration syntaxique automatique [AFCK] </SMALL>


voici la trace :

BONJOUR = 199.239.237.226.242.261.253
334.353.318.100.698.678.103.314.342.340.308.360.328.347.345.346.320 = oui çà fonctionne

@+
PCPT
0
Rejoignez-nous