Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Blue fish encryptor
ld le 16/03/2011 à 10:51
Et voilà !
V 2.4 Merci Linkakro ! 197 octets au lieu de 405 sans les lignes facultatives !

Et çà fonctionne du tonnerre !
Facultatif
Code
:AxesNAff:Polaire
:"4ln(2téta->r1
:ZMinMax
:Texte(20,55,"BLUEFISH
:Texte(40,30,"ENCRIPTOR
:EffVar r1:Fonct:AxesAff:ZStandard
Code
:"ABCDEFGHIJKLMNOPQRSTUVWXYZ?! ',.0123456789->Chaîne0 ----- (Un espace entre ! et ' ).
:Input Chaîne1
:Input "CLEF ",C
:Input "1CODE 2DECODE ",D
:D-3(D=2->D
:C->NbrAléat
:longueur(Chaîne1->L
:" ->Chaîne2 --------- (Un espace entre " et -> ).
:EffEcr
:For(A,1,L
:DentAléat(1,42)+carChaîne(Chaîne0,sous-Chaîne(Chaîne1,A,1
:Chaîne2+sous-Chaîne(Chaîne0,Rép-42partEnt((Rép-1)/42),1->Chaîne2
:Output(8,1,L-A
:End
:Pause chaîne2
Str1 = Chaîne1
rand = NbrAléat
randInt = entAléat
length = longueur
inString = carChaîne
sub = sous-Chaîne
int = partEnt AlexRider38 le 16/03/2011 à 15:36
poste
+1tarken le 17/03/2011 à 19:12
Ouais vas-y ! Ça a l'air d'être du lourd.azerty1 le 18/03/2011 à 15:42
Postes! Cela pourrait évidemment être très utile!

Métalocif le 18/03/2011 à 17:13
Du cryptage sur TI? Un grand

l.davin !
harven le 18/03/2011 à 18:11
Moi aussi je suis pour que tu le post mais je ne comprend pas le principe du programme :/Akmdad le 18/03/2011 à 23:49
poste!!
j'ai dja ait des programmes de cryptages qui ne font que remplacer des lettres a d'autres lettres, puis en mettant le tout a l'envers...Persalteas le 19/03/2011 à 08:26
d'habitude je code tout avec le système de césar, ça transforme le message en une suite de chiffres avec lesquels on peut faire tout plein d'opérations mathématiques pour brouiller...
bien sur je ne mets pas les lettres dans l'ordre dans la clé de décryptage, ce serait trop facile...
ps: je vois qu'il y a trois membres sur le fofo... venez sur le tchat!Persalteas le 19/03/2011 à 08:35
bonne idée le mode polaire. on fait de très jolis fonds d'écran avec.linkakro le 20/03/2011 à 23:12
Je suis très curieux de connaître cet algorithme

Epates moi !
Tu me donnes envie de bricoler sur ma calcu la même chose que ma spé math sur ordi. Même cela ne sera sûrement pas aussi bien que ton algorithme.
Et j'ai aussi une idée originale que je n'ai pas appliqué comme voulu faute de connaissances en prog d'ordi. Reste à voir si ça sert à quelque chose sur calto.
linkakro le 11/07/2012 à 18:30
EDIT 6/8/12 pour ceux qui débarquent : un message de ld (autrefois appelé l.davin) ci-dessus a été supprimmé (par son propriétaire semble-t-il). Il présentait la version initiale du programme.
--------
version 2
Code
// j'ai supprimmé ce qui me semblait innutile
0->rand // réinitialise les aléatoires // version 2.1
"ABCDEFGHIJKLMNOPQRSTUVWXYZ?! ',.0123456789->Str0
Input Str1
Input "CLEF ",C
1->D
Menu("","CODE",1,"DECODE",2
Lbl 2
2->D
Lbl 1
C->rand // version 2.2
randInt(0,1,C // innutile de faire varier l'intervalle
length(Str1->L
ClrList L1 // nécessaire
For(A,1,L
inString(Str0,sub(Str1,A,1->L1(A // remplace la boucle de recherche
End
If D=1:L1+randInt(1,42,L->L1
If D=2:L1-randInt(1,42,L->L1 // il y avait un L2 au lieu de L1
" "->Str1
ClrHome
For(A,1,L
Str1+sub(Str0,L1(A)-42int((L1(A)-1)/42),1)->Str1 // pseudo modulo (excluant 0)
Output(8,1,L-A
End
Pause Str1
Tu comptes sur l'initialisation des aléatoires pour que la liste des constantes ajoûtées à celle du texte soit difficile à prévoir mais unique pour chaque valeur de clé.
Il suffit d'initialiser rand pour que le reste fonctionne. (rand=NbrAléat)
Par "modulo excluant 0" je désigne l'opération que nos deux versions effectuent, et plus particulièrement son expression par la division euclidienne.
Le modulo pouvait aussi être simplifié avec
L1(A)-42(42<L1(A))+42(1>L1(A))
Je propose d'initialiser les aléatoires avec la valeur de la clé.
Ainsi il suffit de supprimmer ma première ligne puis d'écrire C->rand après Input. (voir les commentaires "version 2.1" et "version 2.2")
linkakro le 11/07/2012 à 23:52
EDIT 6/8/12 : un message ci-dessus a été supprimé o_O
========
L'algorithme des aléatoires des TI_Z80 demeure inconnu à ce jour mais nous avons effectués diverses recherches.
https://espace-ti.forumactif.c[...]?highlight=rand
https://tout82.pages-perso.fre[...].php?sujet=1043
http:// **un sujet de ce forum que je ne retrouve pas**
========
Hélas "Input rand" ne fonctionne pas.
La fusion des boucle est une excellente idée. (comme quoi c'est une équipe qui permet d'avancer)
Je viens d'avoir l'idée d'associer 1 ou -1 à D pour utiliser D dans un unique calcul au lieu d'utiliser deux If.
version 2.3 (pour une fois pas testée)
Code
// on pourra remettre les fioritures de présentation
"ABCDEFGHIJKLMNOPQRSTUVWXYZ?! ',.0123456789->Str0
Input Str1
Input "CLEF ",C
1->D
Menu("","CODE",1,"DECODE",2
Lbl 2
-1->D
Lbl 1
C->rand
randInt(0,1,C
length(Str1->L
" "->Str2
ClrHome
For(A,1,L
inString(Str0,sub(Str1,A,1->B
B+DrandInt(1,42->B
Str2+sub(Str0,B-42int((B-1)/42),1)->Str2
Output(8,1,L-A
End
Pause Str1
ld le 12/07/2012 à 12:41
Et voilà !
V 2.4 Merci Linkakro ! 197 octets au lieu de 405 sans les lignes facultatives !

Et çà fonctionne du tonnerre !
Facultatif
Code
:AxesNAff:Polaire
:"4ln(2téta->r1
:ZMinMax
:Texte(20,55,"BLUEFISH
:Texte(40,30,"ENCRIPTOR
:EffVar r1:Fonct:AxesAff:ZStandard
Code
:"ABCDEFGHIJKLMNOPQRSTUVWXYZ?! ',.0123456789->Chaîne0 ----- (Un espace entre ! et ' ).
:Input Chaîne1
:Input "CLEF ",C
:Input "1CODE 2DECODE ",D
:D-3(D=2->D
:C->NbrAléat
:longueur(Chaîne1->L
:" ->Chaîne2 --------- (Un espace entre " et -> ).
:EffEcr
:For(A,1,L
:DentAléat(1,42)+carChaîne(Chaîne0,sous-Chaîne(Chaîne1,A,1
:Chaîne2+sous-Chaîne(Chaîne0,Rép-42partEnt((Rép-1)/42),1->Chaîne2
:Output(8,1,L-A
:End
:Pause chaîne2
Str1 = Chaîne1
rand = NbrAléat
randInt = entAléat
length = longueur
inString = carChaîne
sub = sous-Chaîne
int = partEnt linkakro le 12/07/2012 à 14:04
Bien !
Cependant tu n'as pas besoin de la liste L1 : regarde ma v 2.3 comme exemple.
Tu peux utiliser une variable numérique, ou même Rép/Ans et ne pas préparer la liste.
Lorsque tu veux vider la liste, il est risqué d'utiliser EffVar : il faudra définir la variable avant de pouvoir de nouveau la manipuler.
Il vaut mieux utiliser EffList qui vide la liste.
Je préfère le Menu au Input pour contrôler le codage/décodage, mais fais comme tu veux, ça marche bien comme tu as fais.
V 2.4.2
Code
AxesNAff
Polaire
"4ln(2téta->r1
ZMinMax
Texte(20,55,"BLUEFISH
Texte(40,30,"ENCRIPTOR
EffVar r1:Fonct:AxesAff:ZStandard
"ABCDEFGHIJKLMNOPQRSTUVWXYZ?! ',.0123456789->Chaîne0
Input Chaîne1
Input "CLEF ",C
Input "1CODE 2DECODE ",D
D-3(D=2->D
C->NbrAléat
longueur(Chaîne1->L
" ->Chaîne2
EffEcr
For(A,1,L
DentAléat(1,42)+carChaîne(Chaîne0,sous-Chaîne(Chaîne1,A,1
Chaîne2+sous-Chaîne(Chaîne0,Rép-42partEnt((Rép-1)/42),1->Chaîne2
Output(8,1,L-A
End
Pause chaîne2
blg_flg le 13/07/2012 à 16:02
WOUAH !

Quel beau flood !
Ça m'arrive souvent en ce moment (d'être seul, pas de flooder, hein

), bien que je ne poste pas pour ça.
J'ai l'impression que tout le monde va sur Espace TI maintenant.
Et il n'y a pas grand monde sur le chat (voir ma signature) non plus.
tapenad le 13/07/2012 à 16:44
pareil pour moi: un signe qui ne trompe pas : je vais sur espace ti puis sur tout82 quand je me connecte

Samos le 13/07/2012 à 17:45
Je doit être le seul mais... je squatte presque que tout82!
(pour ça que je n'ai rien à faire de mes journées

)
Pour le programme je le trouve... Enorme
Associé à
https://tout82.pages-perso.fre[...].php?sujet=3328 de maxence on pourra crypter ses programme
Il reste quand même une ligne de ton programme que je ne comprend qu'à moitié et j'aimerai une confirmation.
Code
sous-Chaîne(Chaîne0,Rép-42partEnt((Rép-1)/42)
cette ligne soustrait 42 si la valeur est supérieure à 42?
linkakro le 13/07/2012 à 17:57
Son équvalent conditionnel (dans le cas précis de ce programme) est :
Rép-42(42<Rép)+42(1>Rép)
Donc oui cela enlève 42 si c'est suppérieur à 42, et cela ajoute 42 si c'est inférieur à 1.linkakro le 13/07/2012 à 22:48
caractère inconnu :
La fonction inString/carChaîne renvoie 0 lorsqu'elle ne trouve pas la seconde chaîne dans la première.
Et le 0 se transforme en 42 lors du modulo d'affichage, d'où le caractère "9" après le décryptage.
Modification d'un programme via un autre :
Il faut de l'assembleur ou coller manuellement une chaine de caractères dans un programme.ld le 16/07/2012 à 17:56
Question:
Il y a 96 x 64 pixels sur l'écran, soit 6144.
Si on divise ce nombre par 8. Puisqu'il y a 8 bits dans un octet on trouve 768. La taille d'une image est de 764. Cela aurait'il un rapport ?matrefeytontias le 16/07/2012 à 19:22
En fait les images en Basic ne font que 96*63 pixels → 756 octets, plus 8 octets pour le nom. Truc que tous les programmeurs ASM savent

linkakro le 16/07/2012 à 20:04
Matrefeytontias :
Peux-tu m'expliquer pourquoi une image fais 96*63 alors qu'une colonne de pixels est innutilisable en Basic, même avec semble-t-il StorePic et RecallPic ?
l.davin :
J'ai déjà compressé une image en chaine de caractères. C'est terriblement lent mais aussi terriblement léger en base 64 par bytes de 6 bits.
Autre remarque :
Je vois que quelques messages ont été supprimmés dans ce sujet, dont un de flood, mais pas le plus gros flood.
Edit 6/8/12 : d'autres messages, dont des importants, ont été supprimmés, mais il reste encore quelques messages de flood. o_Osandro le 18/07/2012 à 21:29
pour les images en basic, le pixel de la 96ème colonne y est, il est juste impossible de l'activer en basic : le bit est à 0 tout simplement. En revanche si on met à 1 le bit en question à l'aide d'un programme en assembleur (ou autre permettant de modifier la mémoire), et qu'en suite on rappelle l'image, le pixel apparaît pleinld le 21/07/2012 à 23:46
VDM
Merci pour vos réponses

Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.