(mais pas du binaire )
utile pour echanger avec un tiers de façon relativement sécurisé ...
c'est pas du codage resistant a la NSA , mais ça le fait bien
pour par exemple embrouiller un email ..
le principe est simple, et repose sur RandomSEED(X)
chaque randomseed initie une liste de chiffres aléatoire , je me sert
du fait qu'une liste randomseed(x) sera toujours la meme !
ensuite j'utilise les membres de cette liste pour encoder chaque caracteres du text
le decodage, procede de la meme maniere ...
seulement les caracteres inclus dans l'alphabet seront traité . .
si vous encodez avec le parametre "de" egale a 10 , il faudra obligatoirement remettre 10
pour le decodage ....
si vous voulez compliquer le codage, il suffit de Surencoder , mais il faudra procéder au mouvement inverse pour decoder
exemple :
Code : Tout sélectionner
Text.s="il était une bergère !" ; <<<<<<<<< Texte a traiter
Debug Text.s
; on encode
code.s= R_encode(text.s,10)
debug "Texte encodé Random "+Code.s
; on Sur-encode
code.s= R_encode(code.s,1)
debug "Texte sur_encodé Random "+Code.s
; on decode le sur encodage
code.s= R_decode(Code.s ,1)
debug "Texte surdécodé Random "+Code.s
; on decode vraiment le dernier encodage
code.s= R_decode(Code.s ,10)
debug "Texte décodé Random "+Code.s
voici le source :
Code : Tout sélectionner
;***********************************************
;Titre :*Random_encode_decode
;Auteur : Zorro
;Date :11/12/2017
;Heure :12:08:00
;Version Purebasic : PureBasic 5.60 (Windows - x86)
;Version de l'editeur :EPB V2.68
; Libairies necessaire : Aucune
;***********************************************
Declare.s R_encode(text.s,de)
Declare.s R_decode(text.s,de)
Text.s="il était une bergère !" ; <<<<<<<<< Texte a traiter
Debug Text.s
; on encode
code.s= R_encode(text.s,10)
debug "Texte encodé Random "+Code.s
; on decode
code.s= R_decode(Code.s ,10)
debug "Texte décodé Random "+Code.s
Procedure.s R_encode(text.s,De)
; By Zorro
Protected Code.s,Extrait.s,Alphabet.s,Pointeur
RandomSeed(De)
Alphabet.s="abcdefghijklmnopqrstuvwxyz0123456789àéèêû ,;/:!¨^$'()-+\_ç&ù§[]=><*#{}@|~"
For i=1 to Len(text.s)
Extrait.s=mid(text.s,i,1)
position=FindString(Alphabet.s,Extrait.s)
de=Random(42,1)
pointeur=de+position
If pointeur>Len(Alphabet.s) :pointeur=pointeur-Len(Alphabet.s) :Endif
Code.s=Code.s+mid(Alphabet.s,pointeur,1)
Next i
ProcedureReturn Code.s
EndProcedure
;
Procedure.s R_decode(text.s,De)
; By Zorro
Protected Code.s,Extrait.s,Alphabet.s,Pointeur
RandomSeed(De)
Alphabet.s="abcdefghijklmnopqrstuvwxyz0123456789àéèêû ,;/:!¨^$'()-+\_ç&ù§[]=><*#{}@|~"
For i=1 to Len(text.s)
Extrait.s=mid(text.s,i,1)
position=FindString(Alphabet.s,Extrait.s)
de=Random(42,1)
pointeur=position-de
If pointeur<1 :pointeur=pointeur+Len(Alphabet.s) :Endif
Code.s=Code.s+mid(Alphabet.s,pointeur,1)
Next i
ProcedureReturn Code.s
EndProcedure