Impossible de crypter un texte qui à la meme cle

titi77200 Messages postés 4 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 24 mai 2007 - 2 mars 2007 à 17:23
titi77200 Messages postés 4 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 24 mai 2007 - 3 mars 2007 à 12:00
Bonjour,
J'ai un probleme lorsque j'essaie de crypter un texte qui à la meme clé.
Ex :
Clé = pomme
Texte à crypter = pomme

Resultat = rien
Le code :

Dim texte As String
Dim tabkey(20) As String
Dim i As Integer
Dim j As Integer
Dim char As String
Dim phrase As String
Dim L As String

phrase = ""
For i = 1 To Len(key)
      tabkey(i) = Mid(key, i, 1)
Next
j = 1
For i = 1 To Len(texte)
            char = Mid(texte, i, 1)
            L = Chr(Asc(tabkey(j)) Xor Asc(char))
            If j >= Len(key) Then
              j = 1
            Else
                j = j + 1
            End If
            phrase = phrase + L
Next
            texte = phrase

Merci

3 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
2 mars 2007 à 18:12
Bonjour,

Je te suggère de changer d'algorithme de chiffrement. Celui-ci n'en est pas vraiment un ...
Si tu tiens à le conserver, fais au moins en sorte de ne pas choisir comme clé un mot existant.

Un algo plus fiable, enfin, ne peut être basé sur une clé unique (fais en au moins plusieurs et fais en sorte qu'une partie du titre de ton fichier, ou sa date,... ou encore certaines des  lettres du texte à partir d'un rang donné soient utilisées pour pointer vers l'une des clefs d'une base de données partagée entre les correspondants.

D'autres, enfin, choisssent d'extraire la clef d'une longue chaîne de caractères (que possèdent tous les correspondants) et de faire en sorte que cette extraction puisse se faire à partir de certains "drapeaux" fondus dans le texte de façon adroite, calculée à l'insertion et extraite à la traduction.

Voilà, ce n'est toujours pas excellent (il y a mille fois mieux), mais celà devrait te donner des idées de départ.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 mars 2007 à 21:12
Evidemment que tu n'obtienne rien dans le cas bien précis ou la clé= le mot à crypter

La clé (si je puis dire) de ton problème se situe là :
L = Chr(Asc(tabkey(j)) Xor Asc(char))

Lance ton cryptage en mode pas à pas et regarde pour chaque caractère à crypter ce que vaut tabkey(j) et char.

Je te rapelle au passage un petit bout de l'algèbre de boole concernant l'opérateur Xor, l'opération dans le cas présent se faisant au niveau du bit
- Si les 2 opérandes sont égaux, le résultat est 0
- Si les 2 opérandes sont différents le résultat est 1
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
On peut en déduire 'A' xor 'A' vbNullChar Chr(0)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
titi77200 Messages postés 4 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 24 mai 2007
3 mars 2007 à 12:00
Bonjour,
Tout d'abord merci d'avoir repondu =)
En faite le probleme c'est que je fais comment si je peut pas crypter 2 fois la meme lettre ?
Vu que Chr(0) = Null
Le cryptage avec le xor marche donc ke si les lettres sont differentes ?
Merci
0
Rejoignez-nous