Page 1 sur 1

Problème avec mon algorithme

Publié : jeu. 13/janv./2005 11:34
par gansta93
bonjour,

Je me suis amusé à créer mon petit algorithme de cryptage, mais j'ai à chaque fois que je décrypte, le ô qui devien È et je ne comprand pas pourquoi.
Si quelqu'un pouvait m'aider svp.

Code : Tout sélectionner

Procedure.s Cripte(Texte.s)
  
  tmp$ = ""
  tmp1$ = ""
  For I = 1 To Len(Texte)
    tmp$ = Mid(Texte, I, 1)
    var = Asc(tmp$) + 22
    If var > 255
      var - 300
    EndIf
    tmp1$ = tmp1$ + Chr(var)
  Next
  ProcedureReturn tmp1$
  
EndProcedure

Procedure.s Decripte(Texte.s)
  
  For i = 1 To Len(Texte)
    tmp$ = Mid(Texte, i, 1)
    var = Asc(tmp$) + 300 - 22
    If var > 255
      var = var - 300
    EndIf
    tmp1$ = tmp1$ + Chr(var)
  Next
  ProcedureReturn tmp1$
  
EndProcedure

Texte1$ = "Lol, c'est drôle !"
c$ = cripte(Texte1$)
c1$ = Decripte(c$)
MessageRequester("Essais", Texte1$ + " donne :" + " " + c$, 0)
MessageRequester("Essais", c$ + " décrypté donne : " + c1$, 0)
End
Merci d'avance.

Publié : jeu. 13/janv./2005 14:33
par lionel_om
pourquoi 300 ???
fais var = var %256 :lol:

Publié : jeu. 13/janv./2005 17:17
par gansta93
J'ai mis 300 pour changer... mais pk ça pause problème de mettre 300 ou 256 ? Je suis très très mauvais en mathématiques.

Publié : jeu. 13/janv./2005 22:39
par Le Soldat Inconnu

Code : Tout sélectionner

Procedure.s Cripte(Texte.s) 
  
  tmp$ = "" 
  tmp1$ = "" 
  For I = 1 To Len(Texte) 
    tmp$ = Mid(Texte, I, 1) 
    var = Asc(tmp$) + 22 
    If var > 255 
      var - 255
    EndIf 
    tmp1$ = tmp1$ + Chr(var) 
  Next 
  ProcedureReturn tmp1$ 
  
EndProcedure 

Procedure.s Decripte(Texte.s) 
  
  For I = 1 To Len(Texte) 
    tmp$ = Mid(Texte, I, 1)
    var = Asc(tmp$) - 22
    If var < 0
      var = var + 255
    EndIf 
    tmp1$ = tmp1$ + Chr(var) 
  Next 
  ProcedureReturn tmp1$ 
  
EndProcedure 

Texte1$ = "Lol, c'est drôle !" 
c$ = Cripte(Texte1$) 
c1$ = Decripte(c$) 
MessageRequester("Essais", Texte1$ + " donne :" + " " + c$, 0) 
MessageRequester("Essais", c$ + " décrypté donne : " + c1$, 0) 
End
tu peux pas faire un chr avec une valeur négative, il faut que ta valeur reste entre 0 et 255

Publié : ven. 14/janv./2005 9:06
par gansta93
OK merci... ça m'énerve... j'arrive pas à imaginer un algo... trop nul en maths...

Publié : ven. 14/janv./2005 10:40
par Backup
trop nul en maths...
ben oui peut etre :D

mais y a rien de Mathématique la dedans !!
les lettres et le chiffres (graphique) d'un ordinateur sont codé de 0 a 255 !!
cela s'appelle le code ASCII !
c'est une norme , c'est tout !
donc si tu bosse avec les "chr" et "asc" etc , faut rester dans la fourchette
de 0 a 255 (je dirai meme de 32 a 126) car en dessous de 32
se sont les caractere de controls , et au dessus c'est de l'ascii etendu
dont les signes representant le code peut varier d'un ordi a l'autre

:D