Xor
Re: Xor
Simplement parce que Asc("z") = 122
donc to soft au z de azerty fait
donc to soft au z de azerty fait
Code : Tout sélectionner
Debug Str(122 ! 122)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Xor
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
[]
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/
Re: Xor
Je me suis sans doute mal exprimé, fatigué que je suis d'avoir codé depuis 4h du mat.
ce code donne un espace (plus precisement un chr(0) :
Tandis que ce code ne donne pas le chr(0) attendu apres le premier caractere :
ce code donne un espace (plus precisement un chr(0) :
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$
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Xor
Tu demandes un Chr(32) pas un chr(0)
je ne vois pas ou tu vois 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)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Xor
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)
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Xor
Eh bien écrit ton message en majuscule !
Z = 90
z = 122
voilà la différence
Z = 90
z = 122
voilà la différence

Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/
Re: Xor
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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Xor
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
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Xor

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Xor
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"
donc
Debug 65!65 = 0 MAIS Debug 97|65 = 32 (un espace en ASCII)
SPH, as-tu compris ? dans l'IDE de PureBasic, faire [Alt+A] pour avoir la table ASCII...

Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/
Re: Xor
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 ?
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Xor
Bon, déjà une chose est sure : Purebasic ne buggue pas !
Par contre ta fonction doit être modifiée en fonction de ton besoin : si tu dois écrire le message en ASCII, tu dois éviter les résultats XOR plus petit que 32...
Voici un exemple de code (qui ne correspond probablement pas à ton besoin) pour te donner des idées.
Tu peux aussi ajouter des tests dans la procédure, mettre les LCASE ou UCASE dans celle-ci de manière conditionnelle (si b < 91 ALORS UCASE(message$) else LCASE(message$))
Si tu veux un code plus juste, il faut nous expliquer ce que tu attends exactement
PS : regardes dans le message http://www.purebasic.fr/french/viewtopi ... 60#p146760 : la trace du debug caractère par caractère montre que ton xor "az" avec 65 renvoie le caractère 32 (ESPACE) et non CHR(0)
Par contre ta fonction doit être modifiée en fonction de ton besoin : si tu dois écrire le message en ASCII, tu dois éviter les résultats XOR plus petit que 32...
Voici un exemple de code (qui ne correspond probablement pas à ton besoin) pour te donner des idées.
Tu peux aussi ajouter des tests dans la procédure, mettre les LCASE ou UCASE dans celle-ci de manière conditionnelle (si b < 91 ALORS UCASE(message$) else LCASE(message$))
Si tu veux un code plus juste, il faut nous expliquer ce que tu attends exactement

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
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/
Re: Xor
Merci golfy. Il n'y a probablement pas de bug dans PB mais n'empeche, le chr(0) apparait dans un cas sur 2 (voir mon premier post) 

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits