Message populaire kumakuma215 Posté(e) le 24 mars 2018 Message populaire Posté(e) le 24 mars 2018 Et oui, j'ai fait un chiffreur ROT (comme vous avez pu le voir sur discord). Par contre, je poste ici car j'ai la flemme de faire une présentation de ressource et tout. Brefffffff. Bon, le but de ce chiffreur est de chiffrer (merci captain obvious) une phrase/une chaine de caractères en ROT (Ou le chiffre de César, c'est la même chose.). Qu'est-ce que c'est? Je vous renvoie sur une page wikipédia : https://fr.wikipedia.org/wiki/Chiffrement_par_décalage. Aussi, cette fonction a une autre fonctionnalité, et c'est de chiffrer des chiffres via une formule mathématique. Je donnerais des exemples vers la fin de ce post pour que ce soit plus clair ;). La fonction avec tout ce qu'il faut pour qu'elle marche: [spoiler=Le code brut] [spoiler=Le code brut] [spoiler=Le code brut] [/size][/size][/size][/size][/size][/size][/size][/size][/size][/size] [size=1][size=4][size=1][size=4][size=1][size=4][size=1][size=4][size=1][size=4]function Chiffrage(t: text, l: text, f: text, p: player): if file "plugins/Skript/scripts/ChiffreurMSG.sk" doesn't exist: create file "plugins/Skript/scripts/ChiffreurMSG.sk" set {_t} to "%convert {_t} to uppercase%" set {_l::*} to {_l} split at "NbreLettres:" set {_l} to "%{_l::2}%" parsed as integer set {_msglist::*} to {_t} split at "" loop (size of {_msglist::*}) times: set {_f::*} to {_f} split at "Formule:" set {_msg} to {_msglist::%loop-value%} set {_nbre} to loop-value set {_msg} to "%{_msg}%" parsed as integer if {_msg} is an integer: replace all "x" with "%{_msg}%" in {_f::2} wf("on load:","plugins/Skript/scripts/ChiffreurMSG.sk") wf(" set {CFR} to (%{_f::2}%)","plugins/Skript/scripts/ChiffreurMSG.sk") execute console command "/sk reload ChiffreurMSG.sk" replace all "%{_msg}%" with "x" in {_f::2} wait 1 second if {_fullmsg} isn't set: set {_fullmsg} to "" set {_fullmsg} to "%{_fullmsg}%%{CFR}%" delete {CFR} else: loop 26 times: set {_groups::*} to groups 1 of "%{_t}%" matched to "([^a-zA-Z_])" if {_fullmsg} isn't set: set {_fullmsg} to "" loop (size of {_groups::*}) times: if "%{_msg}%" is "%{_groups::%loop-value-3%}%": set {_fullmsg} to "%{_fullmsg}%%{_msg}%" replace all "%{_msg}%%{_msg}%" with "%{_msg}%" in {_fullmsg} exit loop else: if {_msg} is "%{Alphabet::%loop-value-2%}%": set {_nbre2} to loop-value-2 if ({_nbre2} + {_l}) <= 0: set {_lettre} to (26+{_nbre2}+{_l}) replace all "-" with "" in {_lettre} set {_lettre} to {Alphabet::%{_lettre}%} else if ({_nbre2} + {_l}) > 26: set {_lettre} to (({_nbre2} + {_l}) - 26) set {_lettre} to {Alphabet::%{_lettre}%} else: set {_lettre} to ({_nbre2} + {_l}) set {_lettre} to {Alphabet::%{_lettre}%} set {_fullmsg} to "%{_fullmsg}%%{_lettre}%" exit loop if {_msg} is "A": set {_nbre2} to 1 if ({_nbre2} + {_l}) <= 0: set {_lettre} to (26+{_nbre2}+{_l}) replace all "-" with "" in {_lettre} set {_lettre} to {Alphabet::%{_lettre}%} else if ({_nbre2} + {_l}) > 26: set {_lettre} to (({_nbre2} + {_l}) - 26) set {_lettre} to {Alphabet::%{_lettre}%} else: set {_lettre} to ({_nbre2} + {_l}) set {_lettre} to {Alphabet::%{_lettre}%} set {_bckpfullmsg} to {_fullmsg} set {_fullmsg} to "%{_fullmsg}%%{_lettre}%" set {_nxt} to (loop-value-1+1) if "%{_msglist::%{_nxt}%}%" isn't "A": replace all "%{_lettre}%%{_lettre}%" with "%{_lettre}%" in {_fullmsg} else: set {_fullmsg} to "%{_bckpfullmsg}%[%{_lettre}%]" exit loop replace all "<none>" with "" in {_fullmsg} replace all "[" with "" in {_fullmsg} replace all "]" with "" in {_fullmsg} if file "plugins/Skript/Chiffrages.txt" doesn't exist: create file "plugins/Skript/Chiffrages.txt" wf("Chiffrage du %now% :","plugins/Skript/Chiffrages.txt") wf(" %{_fullmsg}%","plugins/Skript/Chiffrages.txt") wf(" Ecart des lettres: %{_l}%","plugins/Skript/Chiffrages.txt") wf(" Formule pour les chiffres: %{_f::2}%","plugins/Skript/Chiffrages.txt") wf(" Message original: %{_t}%","plugins/Skript/Chiffrages.txt") send "&aLe message chiffré a bien été généré." to {_p} send "&aSon emplacement est ""plugins/Skript/Chiffrages.txt"" " to {_p} function wf(s: string, file: string): #Merci à Syst3ms pour cette fonction :^) write {_s} at line (line count of file {_file} + 1) to file {_file} on load: if (size of {Alphabet::*}) = 0: set {Alphabet::*} to "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y" and "Z" on Skript stop: delete "plugins/Skript/scripts/TestChiffrage.sk" delete "plugins/Skript/scripts/ChiffreurMSG.sk" [spoiler=Le code sur hastebin car c'est plus joli] [spoiler=Le code sur hastebin car c'est plus joli] [spoiler=Le code sur hastebin car c'est plus joli] https://hastebin.com/ucohepawuw.vbs Voilà la fonction et tout ce qui sert à la faire marcher sans être user-friendly. Voici maintenant, la version user-friendly Yay :D. [spoiler=Le code brut encore :kappa:] [spoiler=Le code brut encore :kappa:] [spoiler=Le code brut encore :kappa:] [/size][/size][/size][/size][/size][/size][/size][/size][/size][/size] [size=1][size=4][size=1][size=4][size=1][size=4][size=1][size=4][size=1][size=4]function Chiffrage(t: text, l: text, f: text, p: player): if file "plugins/Skript/scripts/ChiffreurMSG.sk" doesn't exist: create file "plugins/Skript/scripts/ChiffreurMSG.sk" set {_t} to "%convert {_t} to uppercase%" set {_l::*} to {_l} split at "NbreLettres:" set {_l} to "%{_l::2}%" parsed as integer set {_msglist::*} to {_t} split at "" loop (size of {_msglist::*}) times: set {_f::*} to {_f} split at "Formule:" set {_msg} to {_msglist::%loop-value%} set {_nbre} to loop-value set {_msg} to "%{_msg}%" parsed as integer if {_msg} is an integer: replace all "x" with "%{_msg}%" in {_f::2} wf("on load:","plugins/Skript/scripts/ChiffreurMSG.sk") wf(" set {CFR} to (%{_f::2}%)","plugins/Skript/scripts/ChiffreurMSG.sk") execute console command "/sk reload ChiffreurMSG.sk" replace all "%{_msg}%" with "x" in {_f::2} wait 1 second if {_fullmsg} isn't set: set {_fullmsg} to "" set {_fullmsg} to "%{_fullmsg}%%{CFR}%" delete {CFR} else: loop 26 times: set {_groups::*} to groups 1 of "%{_t}%" matched to "([^a-zA-Z_])" if {_fullmsg} isn't set: set {_fullmsg} to "" loop (size of {_groups::*}) times: if "%{_msg}%" is "%{_groups::%loop-value-3%}%": set {_fullmsg} to "%{_fullmsg}%%{_msg}%" replace all "%{_msg}%%{_msg}%" with "%{_msg}%" in {_fullmsg} exit loop else: if {_msg} is "%{Alphabet::%loop-value-2%}%": set {_nbre2} to loop-value-2 if ({_nbre2} + {_l}) <= 0: set {_lettre} to (26+{_nbre2}+{_l}) replace all "-" with "" in {_lettre} set {_lettre} to {Alphabet::%{_lettre}%} else if ({_nbre2} + {_l}) > 26: set {_lettre} to (({_nbre2} + {_l}) - 26) set {_lettre} to {Alphabet::%{_lettre}%} else: set {_lettre} to ({_nbre2} + {_l}) set {_lettre} to {Alphabet::%{_lettre}%} set {_fullmsg} to "%{_fullmsg}%%{_lettre}%" exit loop if {_msg} is "A": set {_nbre2} to 1 if ({_nbre2} + {_l}) <= 0: set {_lettre} to (26+{_nbre2}+{_l}) replace all "-" with "" in {_lettre} set {_lettre} to {Alphabet::%{_lettre}%} else if ({_nbre2} + {_l}) > 26: set {_lettre} to (({_nbre2} + {_l}) - 26) set {_lettre} to {Alphabet::%{_lettre}%} else: set {_lettre} to ({_nbre2} + {_l}) set {_lettre} to {Alphabet::%{_lettre}%} set {_bckpfullmsg} to {_fullmsg} set {_fullmsg} to "%{_fullmsg}%%{_lettre}%" set {_nxt} to (loop-value-1+1) if "%{_msglist::%{_nxt}%}%" isn't "A": replace all "%{_lettre}%%{_lettre}%" with "%{_lettre}%" in {_fullmsg} else: set {_fullmsg} to "%{_bckpfullmsg}%[%{_lettre}%]" exit loop replace all "<none>" with "" in {_fullmsg} replace all "[" with "" in {_fullmsg} replace all "]" with "" in {_fullmsg} if file "plugins/Skript/Chiffrages.txt" doesn't exist: create file "plugins/Skript/Chiffrages.txt" wf("Chiffrage du %now% :","plugins/Skript/Chiffrages.txt") wf(" %{_fullmsg}%","plugins/Skript/Chiffrages.txt") wf(" Ecart des lettres: %{_l}%","plugins/Skript/Chiffrages.txt") wf(" Formule pour les chiffres: %{_f::2}%","plugins/Skript/Chiffrages.txt") wf(" Message original: %{_t}%","plugins/Skript/Chiffrages.txt") send "&aLe message chiffré a bien été généré." to {_p} send "&aSon emplacement est ""plugins/Skript/Chiffrages.txt"" " to {_p} function wf(s: string, file: string): #Merci à Syst3ms pour cette fonction :^) write {_s} at line (line count of file {_file} + 1) to file {_file} on load: if (size of {Alphabet::*}) = 0: set {Alphabet::*} to "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y" and "Z" on Skript stop: delete "plugins/Skript/scripts/TestChiffrage.sk" delete "plugins/Skript/scripts/ChiffreurMSG.sk" command /chiffrage [<text>]: trigger: if arg-1 is "cancel": if {ToChiffrage.%player's UUID%} isn't set: send "&cVous n'avez même pas commencé de chiffrage!" else: delete {ToChiffrage.%player's UUID%} send "&aVous avez bien annulé la demande de chiffrage!" else: if {ToChiffrage.%player's UUID%} isn't set: send "&aBienvenue. Pour chiffrer le message de votre choix, veuillez écrire le message à chiffrer dans le chat." send "&aPour annuler, veuillez faire la commande &6""/chiffrage cancel""&a." send "&c&lATTENTION! Les caractères spéciaux ne seront pas convertis, donc évitez d'utiliser des accents." set {ToChiffrage.%player's UUID%} to "ToSet" on chat: if {ToChiffrage.%player's UUID%} is "ToSet": cancel event set {ToChiffrage.%player's UUID%} to "%message%|SetLettres" send "&aVous avez bien défini le message à chiffrer. Le message à chiffrer sera:" send "&6%message%" send "&aVeuillez désormais mettre le nombre entier (négatif ou positif) pour les lettres..." send "&aSi vous mettez +5 par exemple, ""A"" sera transformé en ""F"". " send "&aEt si vous mettez -5, ""F"" sera transformé en ""A"". " else if {ToChiffrage.%player's UUID%} contains "SetLettres": cancel event set {_nbre} to "%message%" parsed as integer if ({_nbre}+1) = 1: send "&cVeuillez mettre un nombre entier non nul strictement inférieur à 26 et strictement supérieur à -26!" stop else if {_nbre} >= 26: send "&cVeuillez mettre un nombre entier non nul strictement inférieur à 26 et strictement supérieur à -26!" stop else if {_nbre} <= -26: send "&cVeuillez mettre un nombre entier non nul strictement inférieur à 26 et strictement supérieur à -26!" stop else: set {_t::*} to {ToChiffrage.%player's UUID%} split at "|" set {ToChiffrage.%player's UUID%} to "%{_t::1}%|NbreLettres:%message%|SetFormule" send "&aVous avez bien défini le chiffrage des lettres." send "&aPour définir le chiffrage des nombres, il va falloir faire la méthode suivante." send "&aEcrivez la formule avec des ""x"" pour définir où se trouvera le nombre à chiffrer." send "&c&lATTENTION! Veuillez utiliser les opérateurs de programmation!" send "&c&l""*"" pour la multiplication, ""^"" pour les puissances, ""/"" pour les divisions, le reste c'est comme en maths." send "&c&l10x n'est pas acceptable, alors que 10*x est acceptable!" send "&c&lSi vous mettez 10x et que 2 doit être chiffré, ça mettra juste 102 à la place de 20!" else if {ToChiffrage.%player's UUID%} contains "SetFormule": cancel event send "&cTest de la formule en cours..." set {_msg} to "%message%" loop 9 times: replace all "%loop-value%x" with "%loop-value%*x" in {_msg} set {_msgbackup} to "%{_msg}%" replace all "x" with "124563254125" in {_msg} if file "plugins/Skript/scripts/TestChiffrage.sk" doesn't exist: create file "plugins/Skript/scripts/TestChiffrage.sk" wf("on load:","plugins/Skript/scripts/TestChiffrage.sk") wf(" set {_t} to (%{_msg}%)","plugins/Skript/scripts/TestChiffrage.sk") wf(" set {_t} to ({_t}+1)","plugins/Skript/scripts/TestChiffrage.sk") wf(" if {_t} = 1:","plugins/Skript/scripts/TestChiffrage.sk") wf(" set {VerifChiffrage} to ""Failure""","plugins/Skript/scripts/TestChiffrage.sk") wf(" else:","plugins/Skript/scripts/TestChiffrage.sk") wf(" set {VerifChiffrage} to ""Success""","plugins/Skript/scripts/TestChiffrage.sk") execute console command "/sk reload TestChiffrage.sk" wait 1 second if {VerifChiffrage} is "Failure": send "&cVeuillez mettre une formule valide!" delete {VerifChiffrage} else: delete {VerifChiffrage} set {_t::*} to {ToChiffrage.%player's UUID%} split at "|" set {ToChiffrage.%player's UUID%} to "%{_t::1}%|%{_t::2}%|Formule:%{_msgbackup}%" set {_t::*} to {ToChiffrage.%player's UUID%} split at "|" set {_t::2} to "%{_t::2}%" parsed as integer delete {ToChiffrage.%player's UUID%} send "&cGénération du chiffrage..." Chiffrage("%{_t::1}%", "%{_t::2}%", "%{_t::3}%", player) [spoiler=Le code sur hastebin comme d'habitude] [spoiler=Le code sur hastebin comme d'habitude] [spoiler=Le code sur hastebin comme d'habitude] https://hastebin.com/ukafifivuf.vbs Voici un exemple en GIF, car on aime les gifs quand même Et ça donne ça : Voilà voilà :v 5
Krown0s Posté(e) le 26 mars 2018 Posté(e) le 26 mars 2018 Aie aie aie, c'est chiffrement pas chiffrage
kumakuma215 Posté(e) le 26 mars 2018 Auteur Posté(e) le 26 mars 2018 Aie aie aie, c'est chiffrement pas chiffrage Shhhhhh :^). Sinon, t'en as pensé quoi du Skript?
kumakuma215 Posté(e) le 26 mars 2018 Auteur Posté(e) le 26 mars 2018 Faudra que je voies comment fonctionne le RSA, mais ça pourrait être sympa effectivement 1
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant