Xor
Publié : ven. 07/sept./2012 13:08
Plantage de SPH en beauté
Code : Tout sélectionner
Debug Str(122 ! 122)
Code : Tout sélectionner
message$="azerty"
Procedure.s Xorize(message$,b)
For u=1 To Len(message$)
c=Asc(Mid(message$,u,1))
c=c ! b
b$+Chr(c)
Debug Str(c)
Next
ProcedureReturn "["+b$+"]"
EndProcedure
Debug xorize(message$,65)
Debug xorize(message$,122)
32
59
36
51
53
56
[ ;$358]
27
0
31
8
14
3
[]
Code : Tout sélectionner
message$="a"
b$=""
For u=1 To Len(message$)
c=Asc(Mid(message$,u,1))
b=65 ; on xorise le a
c=c ! b
b$+Chr(c)
Next
Debug b$
Code : Tout sélectionner
message$="az"
b$=""
For u=1 To Len(message$)
c=Asc(Mid(message$,u,1))
b=122 ; on xorise le z
c=c ! b
b$+Chr(c)
Next
Debug b$
Code : Tout sélectionner
c=Asc("a")
Debug "c = " +Str(c)
b=65
c = c ! b
b$ = Chr(c)
Debug "(c ! b) = "+ Str(c)
Debug "chr("+Str(c)+") donne : b$ = "+ Chr(c)
un chr(0) car 65!65 = 0Ar-S a écrit :Tu demandes un Chr(32) pas un chr(0)
je ne vois pas ou tu vois un chr(0) ?
Code : Tout sélectionner
c=Asc("a") Debug "c = " +Str(c) b=65 c = c ! b b$ = Chr(c) Debug "(c ! b) = "+ Str(c) Debug "chr("+Str(c)+") donne : b$ = "+ Chr(c)
Tu as essaye le code ?SPH a écrit :un chr(0) car 65!65 = 0Ar-S a écrit :Tu demandes un Chr(32) pas un chr(0)
je ne vois pas ou tu vois un chr(0) ?
Code : Tout sélectionner
c=Asc("a") Debug "c = " +Str(c) b=65 c = c ! b b$ = Chr(c) Debug "(c ! b) = "+ Str(c) Debug "chr("+Str(c)+") donne : b$ = "+ Chr(c)
Ar-S a écrit :Tu as essaye le code ?SPH a écrit :un chr(0) car 65!65 = 0Ar-S a écrit :Tu demandes un Chr(32) pas un chr(0)
je ne vois pas ou tu vois un chr(0) ?
Code : Tout sélectionner
c=Asc("a") Debug "c = " +Str(c) b=65 c = c ! b b$ = Chr(c) Debug "(c ! b) = "+ Str(c) Debug "chr("+Str(c)+") donne : b$ = "+ Chr(c)
c fait 95 pas 65
Code : Tout sélectionner
Debug 65!65
Je ne dois pas écrire assez gros (pour une fois que j'arrive à trouver le problème)...Golfy a écrit :Eh bien écrit ton message en majuscule !
Z = 90
z = 122
voilà la différence
Les lettres du message sont en minuscules : pour xoriser le 'a' minuscule, la valeur ASCII est 97 (et non 65)message$="az"
Oui mais je n'ai pas le choix. Le probleme, je le rencontre tot ou tard. Car j'xorise autant les minuscules que les majuscules...Golfy a écrit :Je ne dois pas écrire assez gros (pour une fois que j'arrive à trouver le problème)...Golfy a écrit :Eh bien écrit ton message en majuscule !
Z = 90
z = 122
voilà la différenceLes lettres du message sont en minuscules : pour xoriser le 'a' minuscule, la valeur ASCII est 97 (et non 65)message$="az"
donc
Debug 65!65 = 0 MAIS Debug 97|65 = 32 (un espace en ASCII)
SPH, as-tu compris ?
Code : Tout sélectionner
message$="azerty"
Procedure.s Xorize(message$,b)
For u=1 To Len(message$)
c=Asc(Mid(message$,u,1))
c=c ! b
b$+Chr(c)
Debug Str(c)
Next
ProcedureReturn "["+b$+"]"
EndProcedure
; xorization des minuscules (a=97 à z=122)
For t=97 To 122
Debug xorize(LCase(message$),t)
Next t
; xorization des majuscules (A=65 à Z=90)
For t=65 To 90
Debug xorize(UCase(message$),t)
Next t