tu as aussi la fonction xor !! qui marche pas trop mal
dans ce listing tu as la partie encodage que tu peux mettre dans un autre programme , ce programme ne te servira qu'a encoder un mot ou une phrase , et le resultat de l'encodage se trouve dans le press papier !!

tu "contrl+v" ce code dans ton listing,dans une variable , c'est ceci qui sera caché de la vue
ensuite la deuxième parti du prg la partie "décodage"
que tu mettra dans ton fameux prg
servira a décodé ce fameux mot encodé que tu a préalablement mis dans une variable comme indiqué plus haut
il faut bien sur joindre la procédure aussi
c'est la meme procédure qui encode ou décode le mot
ici j'ai utilisé un mot de pass constant "
passwrd" , que tu peux changer , du moment que tu utilise le même a l'encodage et au décodage !!
une utilisation intéressante c'est de prendre plusieurs mot de pass
tu encode avec le premier mot, puis ce résultat encodé tu le sur-encode avec le deuxième ect...
le tout c'est qu'au moment du décodage, il te faudra utiliser l'ordre inverse de mot de pass que pour l'encodage
si tu encode avec
chien
chat
souris
pour decoder, il te faudra faire
souris
chat
chien
pour enfin retrouver la phrase décoder
c'est puissant le Xor, l'air de rien
bien sur plusieurs mot de pass, dont tu sera le seul a connaitre le sens pour le décodage, du coup meme s'ils sont visible, on s'en fout
Code : Tout sélectionner
Procedure.s code(sortie$, Password.s)
text.s=sortie$
Password.s=UCase(Password.s)
p=0
long_or = Len(text.s)
long_pass = Len(Password.s)
For i=1 To long_or
p=p+1 : If p= long_pass:p=1:EndIf
car_pass.l=Asc( Mid(Password.s, p, 1)) ; recupere une lettre (son code ascii)du mot de pass
car_text.l= Asc(Mid(text.s, i, 1)) ; recupere une lettre (son code ascii) du text a coder
If car_text.l=car_pass.l
car_pass.l=car_text.l ; echange
car_text.l=254 ; si 254 , c'est le code choisi pour dire que la lettre a coder est egal a
sorti.l=car_pass.l ; la lettre du mot de pass , donc on prend directement cette lettre
Goto su
EndIf
sorti.l= car_pass ! car_text ; un petit XOR
If sorti.l=0 ; si par hazard la lettre du mot de pass est egal a la lettre a coder
sorti.l=254 ; cela donnerai 0 !! donc on force un 254
EndIf
su:
text_sorti.s=text_sorti.s+Chr(sorti)
Next i
text.s= text_sorti.s
text_sorti.s=""
ProcedureReturn text.s
EndProcedure
; ***************** l'encodeur qui peut etre un prg a part que tu garde pour toi *********************
textacoder$=" ceci est la phrase a coder" ; le mot a coder
Password$="passwrd" ; le mot de pass
Debug "le mot avant codage :"+textacoder$ ; avant codage
;
coder$=code(textacoder$,Password$) ; on code le text avec la librairie
;
Debug "le mot codé : a mettre dans le code :"+coder$ ; apres codage
ClearClipboard()
SetClipboardText(coder$) ; a partir de la tu peut Ctrl+v le text encodé !! dans ton code
; il te suffira de refaire la procedure avec ce text encodé pour le relire
; **************************************************************************************
; ********************le decodeur a mettre dans ton code (avec la procedure) *****************************
decoder$=code(coder$,"passwrd") ; on decode le text encodé avec la librairie
Debug "voici le mot decodé par la prg: "+decoder$ ; apres décodage