PureBasic

Forums PureBasic
Nous sommes le Mer 19/Juin/2013 0:45

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 22 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Read Write XOR Encoded String - V2.0.0
MessagePosté: Dim 12/Juin/2011 2:19 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour à tous,

Pas de quoi pour gagner un prix Nobel... Il s'agit simplement d'une micro librairie d'encodage de type XOR. Une version de Lecture et d'Écriture sur fichier binaire est également incluse.
Le code est compatible en mode Ascii et Unicode (En mode Unicode la chaîne encodé n'est pas lisible, possiblement que la valeur des caractères encodés sont trop grandes pour correspondre à des valeurs valides, cela ne gène en rien le fonctionnement.)

A+
Guimauve

Code:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Read/Write XOR Encoded String
; Nom du fichier : Read Write XOR Encoded String.pb
; Version du fichier : 1.0.0
; Programmation : OK
; Programmé par : Guimauve
; Date : 11-06-2011
; Mise à jour : 11-06-2011
; Code PureBasic : 4.60 Beta 3
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Macro Looping(P_Number, P_Minimum, P_Maximum)
 
  P_Number = P_Number + 1
 
  If P_Number > P_Maximum
 
    P_Number = P_Minimum
   
  EndIf

EndMacro

Procedure.s XOREncodeString(Key.s, Text.s)

  KeyLength = Len(Key)
  TextLength = Len(Text)
 
  For Index = 1 To TextLength
   
    Looping(KeyIndex, 1, KeyLength)
    Encoded.s = Encoded + Chr(Asc(Mid(Text, Index, 1)) ! ~Asc(Mid(Key, KeyIndex, 1)))
   
  Next
 
  ProcedureReturn Encoded
EndProcedure

Procedure WriteXOREncodedString(FileID.l, Key.s, Text.s)

  KeyLength = Len(Key)
  TextLength = Len(Text)
 
  WriteLong(FileID, TextLength)
 
  For Index = 1 To TextLength
   
    Looping(KeyIndex, 1, KeyLength)
    WriteCharacter(FileID, Asc(Mid(Text, Index, 1)) ! ~Asc(Mid(Key, KeyIndex, 1)))
   
  Next

EndProcedure

Procedure.s ReadXOREncodedString(FileID.l, Key.s)

  KeyLength = Len(Key)
  TextLength = ReadLong(FileID)
 
  For Index = 1 To TextLength
   
    Looping(KeyIndex, 1, KeyLength)
    Encoded.s = Encoded + Chr(ReadCharacter(FileID) ! ~Asc(Mid(Key, KeyIndex, 1)))
   
  Next
 
  ProcedureReturn Encoded
EndProcedure

Key.s = "PureBasic 4.60 Beta 3"
Text.s = "J'aime les déesses nordiques super sexy !"

Encoded.s = XOREncodeString(Key, Text)
Decoded.s = XOREncodeString(Key, Encoded)

Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Essai sur chaîne de caractère"
Debug ""
Debug Text
Debug Encoded
Debug Decoded
Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Essai sur fichier"
Debug "Original : " + Text

If CreateFile(0, "Test.Enc")
  WriteXOREncodedString(0, Key, Text)
  CloseFile(0)
EndIf

If ReadFile(1, "Test.Enc")
  Debug "Depuis le fichier : " + ReadXOREncodedString(1, Key)
  CloseFile(1)
  DeleteFile("Test.Enc")
EndIf

; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<


Dernière édition par Guimauve le Mar 14/Juin/2011 2:05, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String
MessagePosté: Dim 12/Juin/2011 10:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5322
Merci pour ce partage, ça va surement servir.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String
MessagePosté: Dim 12/Juin/2011 18:41 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 4468
Localisation: Isere
Je ne sais pas si ça a un rapport avec l’opérateur XOR, c'est vrai on entend souvent ce nom de codage, apparemment c'est quelque chose souvent utilisé :roll:

Merci beaucoup GUIMAUVE pour ce partage. 8)

_________________
ImageLe bonheur est une route...
Pas une destination


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String
MessagePosté: Lun 13/Juin/2011 20:47 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour à tous,

Une nouvelle version qui est un peu plus solide au point de vue de l'encodage dans le sens où chacun des caractères du texte est traité par toute la clé. Il est certain que plus la clé est longue, plus l'encodage est long. Je donne ici la version 2.0.0 et je laisse la version 1.0.0 dans mon premier message.

De plus, pour éviter un problème avec une clé vide, la clé par défaut est "XOREncode", pas très original mais bon au moins cela fonctionne.

A+
Guimauve

Code:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Read/Write XOR Encoded String
; Nom du fichier : Read Write XOR Encoded String.pb
; Version du fichier : 2.0.0
; Programmation : OK
; Programmé par : Guimauve
; Date : 11-06-2011
; Mise à jour : 13-06-2011
; Code PureBasic : 4.60
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Procedure.s XOREncodeString(Key.s, Text.s)
 
  If Key = ""
    Key = "XOREncode"
  EndIf
 
  KeyLength = Len(Key)
  TextLength = Len(Text)
 
  For TextIndex = 1 To TextLength
   
    For KeyIndex = 1 To KeyLength
      Char.c = Asc(Mid(Text, TextIndex, 1)) ! ~Asc(Mid(Key, KeyIndex, 1))
    Next
   
    Encoded.s = Encoded + Chr(Char)
   
  Next
 
  ProcedureReturn Encoded
EndProcedure

Procedure WriteXOREncodedString(FileID.l, Key.s, Text.s)
 
  If Key = ""
    Key = "XOREncode"
  EndIf
 
  KeyLength = Len(Key)
  TextLength = Len(Text)
  WriteLong(FileID, TextLength)
 
  For TextIndex = 1 To TextLength

    For KeyIndex = 1 To KeyLength
      Char.c = Asc(Mid(Text, TextIndex, 1)) ! ~Asc(Mid(Key, KeyIndex, 1))
    Next
   
    WriteCharacter(FileID, Char)
   
  Next
 
EndProcedure

Procedure.s ReadXOREncodedString(FileID.l, Key.s)
 
  If Key = ""
    Key = "XOREncode"
  EndIf
 
  KeyLength = Len(Key)
  TextLength = ReadLong(FileID)
 
  For TextIndex = 1 To TextLength
   
    CharEncoded.c = ReadCharacter(FileID)
   
    For KeyIndex = 1 To KeyLength
      Char.c = CharEncoded ! ~Asc(Mid(Key, KeyIndex, 1))
    Next
   
    Encoded.s = Encoded + Chr(Char)
   
  Next 

  ProcedureReturn Encoded
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<<
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<<
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Key.s = "PureBasic 4.60 Beta 3"
Text.s = "J'aime les déesses nordiques super sexy !"

Encoded.s = XOREncodeString(Key, Text)
Decoded.s = XOREncodeString(Key, Encoded)

Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Essai sur chaine de caractère"
Debug ""
Debug Text
Debug Encoded
Debug Decoded

Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Essai sur fichier"
Debug "Texte Original : " + Text

If CreateFile(0, "Test.Enc")
  WriteXOREncodedString(0, Key, Text)
  CloseFile(0)
EndIf

If ReadFile(1, "Test.Enc")
  Debug "Depuis le fichier : " + ReadXOREncodedString(1, Key)
  CloseFile(1)
  DeleteFile("Test.Enc")
EndIf

; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Ven 10/Fév/2012 18:14 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2189
Désolé du déterrage , mais j'avais pas envi de me claqué l'écriture de ces fonctions , merci du partage guimauve.


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Ven 10/Fév/2012 18:57 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour G-Rom,

Si je me souviens bien, mon code est basé sur celui-ci : http://www.purearea.net/pb/CodeArchiv/Encode+Decode/Xor_Encode&Decode.pb

Mais je l'ai tellement modifié que les deux codes ne ressemble plus.

A+
Guimauve


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Sam 11/Fév/2012 12:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 237
Boujour a tous

Juste une petite question :

La ligne "Debug Encoded" ne devrait-elle pas afficher le texte encoder ?
Or dans mes essais, elle est en clair ? Pourquoi ? :oops:

Le code marche t-il vraiment ?
Je suis sous Linux, est-il multiplaformes ?

Merci d'avance :wink:


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Lun 13/Fév/2012 0:35 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2189
on est tout les 3 sous linux alors , ici ca marche bien (x64) :

Citation:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur chaine de caractère

J'aime les déesses nordiques super sexy !
†ë­¥¡©ì ©¿ì?%©¿¿©¿ì¢£??¥?¹©¿ì¿¹?©?ì¿©?µìí
J'aime les déesses nordiques super sexy !

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur fichier
Texte Original : J'aime les déesses nordiques super sexy !
Depuis le fichier : J'aime les déesses nordiques super sexy !


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Lun 13/Fév/2012 9:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5322
Un autre système de cryptage bienvenu.
Merci ;)

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Lun 13/Fév/2012 16:04 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
cool, merci du partage Guimauve :)

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Mar 14/Fév/2012 0:05 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Ar-S a écrit:
Un autre système de cryptage bienvenu.
Merci ;)


Ce n'est pas un système de cryptage hyper solide. Il permet d’empêcher un bot qui voudrait récupérer des chaînes caractères bien précise.

@Ulix

Si je me souviens bien j'ai testé le code sous Windows XP et Linux Ubuntu x64 et LinuxMint 12 x64 sans problème. J'ai pas fait de test sous MacOSX puisque je n'ai pas de machine de ce type.

Mais je m'explique mal comment le code présenté ci-haut ne fonctionne pas chez toi. Alors que tout les autres indique que ça fonctionne. Est-ce que tu as modifié l'exemple par hasard ? Si oui montre le pour que l'on puisse comprendre ce qui ce passe.

A+
Guimauve


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Mar 14/Fév/2012 11:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 237
@Guimauve

Salut !
J'ai trouvé d'où vient l'erreur ! (erreur si l'on veut :oops: )

Il s'agit d'une directive du compilateur, "option compilateur - Activer le support unicode".

Si l'option est activé, alors la ligne "Debug Encoded" est en clair, pas de codage du texte.

Fait le test, est dit moi si pour toi c'est aussi le cas, si la ligne "Debug Encoded" est en clair.



Je pense que pour que le codage soit complet, :idea:
il faut prendre en compte l'unicode, donc faire :

CompilerIf #PB_Compiler_Unicode
; Ici codage unicode
; a faire
CompilerElse
; Ici codage normal (ascii)
; codage existant
CompilerEndIf

Bref un truc de ce genre !

Merci d'avance :lol:


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Mar 14/Fév/2012 12:44 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour Ulix,

Chez moi avec le code présenté ci-haut avec :

Linux Mint 12 x64 + Gnome-Shell
PureBasic 4.61 Beta1 x64

Voici ce que le débogueur affiche en mode Ascii :
Citation:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur chaîne de caractères

J'aime les déesses nordiques super sexy !
†ë­¥¡©ì ©¿ì?%©¿¿©¿ì¢£??¥?¹©¿ì¿¹?©?ì¿©?µìí
J'aime les déesses nordiques super sexy !

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur fichier
Texte Original : J'aime les déesses nordiques super sexy !
Depuis le fichier : J'aime les déesses nordiques super sexy !


Et en mode Unicode :
Citation:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur chaîne de caractères

J'aime les déesses nordiques super sexy !

J'aime les déesses nordiques super sexy !

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Essai sur fichier
Texte Original : J'aime les déesses nordiques super sexy !
Depuis le fichier : J'aime les déesses nordiques super sexy !

Comme on peut le voir, le débogueur n'affiche plus rien et pourtant il retourne bien la chaîne décodée à partir de la chaîne encodée. C'est peut être dû au fait que l'Éditeur PureBasic soit compilé en mode Ascii. Si non, la chaîne "Encoded" est bien encodé dans les deux cas de figure (Ascii et Unicode).

A+
Guimauve


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Mar 14/Fév/2012 12:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 13082
Citation:
C'est peut être dû au fait que l'Éditeur PureBasic soit compilé en mode Ascii. Si non, la chaîne "Encoded" est bien encodé dans les deux cas de figure (Ascii et Unicode).


je confirme ! :)

car avec EPB en mode unicode ou ascii (seven 64x compilation x86/x64)

Citation:
[12 :54 :17] ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[12 :54 :17] ; Essai sur chaine de caractère
[12 :54 :17]
[12 :54 :17] J'aime les déesses nordiques super sexy !
[12 :54 :17] ニ→ᆳᆬᄀᄅ↓ᅠᄅ﾿↓ᄄEᄅ﾿﾿ᄅ﾿↓ᄁᆪᄒᄄᆬᄑᄍᄅ﾿↓﾿ᄍᄐᄅᄒ↓﾿ᄅᄡᄉ↓■
[12 :54 :17] J'aime les déesses nordiques super sexy !
[12 :54 :17]
[12 :54 :17] ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[12 :54 :17] ; Essai sur fichier
[12 :54 :17] Texte Original : J'aime les déesses nordiques super sexy !
[12 :54 :17] Depuis le fichier : J'aime les déesses nordiques super sexy !


ça marche :)

ps : ça marche aussi avec japbe ;)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Read Write XOR Encoded String - V2.0.0
MessagePosté: Mar 14/Fév/2012 14:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 237
Merci a vous deux, Guimauve et Dobro de m'avoir éclaire :P

Je commençais a me poser des questions sur mon système Linux - Ubuntu :mrgreen:

Encore Merci !

@Dobro
Citation:

Citation:
C'est peut être dû au fait que l'Éditeur PureBasic soit compilé en mode Ascii. Si non, la chaîne "Encoded" est bien encodé dans les deux cas de figure (Ascii et Unicode).

je confirme ! :)

car avec EPB en mode unicode ou ascii (seven 64x compilation x86/x64)



Apparement EPB, affiche sans problême le "debug Encoded" !

Je regrette de plus en plus qu'il ne soit qu'en version Windows. :cry:
EPB m'a l'air sacrement bon. Je l'envie en version Linux.

Merci.


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 22 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye