ENCRYPT

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 15 déc. 2003 à 16:15
aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008 - 18 déc. 2003 à 01:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18729-encrypt

aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008
18 déc. 2003 à 01:16
Salut KaViDee :
Concernant le Chr$(c And &HFF) c’est ne pas la même chose que Chr$(c) : voilà une explications détailler :

-dans la fonction de cryptage :
Private Function EncryptText(strText As String, ByVal strPwd As String)
Dim i As Integer, c As Integer
Dim strBuff As String

#If Not CASE_SENSITIVE_PASSWORD Then

strPwd = UCase$(strPwd)

#End If

If Len(strPwd) Then
For i = 1 To Len(strText)
c = Asc(Mid$(strText, i, 1))
c = c + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1))
strBuff = strBuff & Chr$(c And &HFF)
Next i
Else
strBuff = strText
End If
EncryptText = strBuff
End Function

-D’abord après c = Asc(Mid$(strText, i, 1)) on a c toujours entre 0 et 255 cad c est sur 8bits
-Après c = c + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1)) c n’est plus sur 8bits car on a ajouté la valeur d’un caractère du mot de passe d’où c peux être + ou – que 8bits
-En fin on a Chr$(c And &HFF) et on a code ascii va de 0 à 255 donc il faut ramener c à 8bits de nouveau on faisons le And &HFF
exemple :
imagine que le caractère vaut 200 donc c=200
après on récupère la valeur d’un caractère du mot de passe imagine qu’il vaut 100
on l’ajoute à c alors c=300 or 300>255 donc c’est impossible de faire Chr$(c) d’ou il faut ramener ce dernier à 8bits on ajoutant le And &HFF comment ça fait ? c’est très simple
imagine que c en binaire est 100000001 cad sur 9bits
on fait And &HFF càd 100000001 And 11111111 ça donne 00000001 donc c :00000001 d’ou c se ramène à 8bits et on peut faire le Chr$

Concernant #const ici on doit mettre le # devant const car on va l’utiliser dans un #if
Le # c’est une opération pour pré processeur càd si Not CASE_SENSITIVE_PASSWORD=True la boucle if serra compiler sinon elle ne serra pas compiler càd améliorer la vitesse et gagner de l’espace mémoire c’est tous mais dans c’est prog on peut travailler avec des if seulement :)


J’espère bien que tu ma compris :)

A++++++++++
KaViDee Messages postés 262 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 juin 2008
17 déc. 2003 à 18:25
Ok, si tu le dis je te crois :)
Mais j'ai une 2 chtites questions à propos de ton cryptage:
ça sert à quoi Chr$(c And &HFF) ?? j'ai fais des tests et apparament si tu fais Chr$(c) ça revient au même. Pourrais tu m'expliquer la fonction de And dans ce cas la ?
Et aussi à quoi ça sert de mettre des "#" devant les If et les Const ?!
merci
aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008
17 déc. 2003 à 13:35
Mais non attention!!! je suis pas voleur ce prog je le crée sa fait longtemps depuis l’été de 2001
KaViDee Messages postés 262 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 juin 2008
16 déc. 2003 à 21:37
Je voudrais pas t'accuser à tort mais apparament tu as copié EasyCrypt (http://www.vbfrance.com/article.aspx?ID=5627).
Pourquoi je dis ça ? parce-que la structure du code est identique ainsi que le logo...
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
15 déc. 2003 à 16:15
memes remarques que pour linkwang. Tu ne sors pas de l'algorythme de vigenere. La seule difference que tu as avec lui est que tu utilises tout le panel de caracteres ascii pour faire ton encodage.
Tu ne le decouvre pas, vu que tu as laisse un post sur son code. Un peu d'invention, que diable.
Rejoignez-nous
A voir également