Crypter les données sur une appli client serveur

Résolu
Neow26 Messages postés 50 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 12 mai 2007 - 14 août 2005 à 17:48
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 14 août 2005 à 20:20
Salut à tous,
Voila je fais une appli client serveur et je voudrai crypter mon échanges.
J'ai fait le code suivant pour crypter et décrypter mais dans les cas ou j'ai un caractère comme ÿ qui a le code ascii 255 j'ia logiquement une erreur si je lui ajoute ni'mporte quelle valeur et que je reconvertit en char.

Public Function Encrypter(ByVal password As String) as String
Dim TempPassword As String, i As Integer, j As Integer
j = 1
If password <> "" Then
For i = 1 To Len(password)
TempPassword = TempPassword & Chr(Asc(Mid(password, i, 1)) + Asc(Mid(Cle, j, 1)))
j = j + 1
If j > Len(Cle) Then
j = 1
End If
Next
Encrypter = TempPassword
End If
End Function

Public Function Decrypter(ByVal password As String) as String
Dim TempPassword As String, i As Integer, j As Integer
j = j + 1
If password <> "" Then
For i = 1 To Len(password)
TempPassword = TempPassword & Chr(Asc(Mid(password, i, 1)) - Asc(Mid(Cle, j, 1)))
j = j + 1
If j > Len(Cle) Then
j = 1
End If
Next
Decrypter = TempPassword
End If
End Function



Donc de code m'allait bien vu que mon message avait la même taille après cryptage alors j'ai je vois 2 solutions qui me plaisent pas trop :
- Ne pas reconvertir mon message en char mais bon çà m'allourdi mon message.
- Ne pas crypter les caractère pour lesquels le code ascii crypter est supérieur à 255.

Pourriez vous me dire ce qui serai le mieux ou bien sur si vous avez mieux.

1 réponse

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
14 août 2005 à 20:20
Salut,

petit exemple pour 1 caractère, je te laisse adapter, j'ai testé plusieurs cas et ça semble fonctionner correctement :

Dim c1 As String
Dim c2 As String


c1 = "A"
c2 = "ÿ"
'c1 = "ÿ"
'c2 = "A"
'etc


'cryptage
If Asc(c1) + Asc(c2) > 255 Then
c1 = Chr((Asc(c1) + Asc(c2)) - 255)
Else
c1 = Chr(Asc(c1) + Asc(c2))
End If

'résultat du cryptage
MsgBox c1 & " : " & Asc(c1)

'décryptage
Select Case Asc(c1) - Asc(c2)
Case 0
c1 = c1
Case Is < 0
c1 = Chr((Asc(c1) - Asc(c2)) + 255)
Case Else
c1 = Chr(Asc(c1) - Asc(c2))
End Select


'résultat du décryptage
MsgBox c1 & " : " & Asc(c1)

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
Rejoignez-nous