OVH Cloud OVH Cloud

votre aide pour cryptage

5 réponses
Avatar
dav
j'ai conçu un petit dictionnaire perso compilé en un petit exe que je
désire crypter pour le protéger.
je ne sais trop comment envisager la chose. un simple xor devrait
suffire. pourriez vous m'apporter vos idées.
voici ce que j'envisage :

ouvrir le fichier A
en ouvrir un autre ou j'écrirai A codé.
lire caractère par caratère A et appliquer un xor d'après une chaine de
caractère sur laquelle je preleve un caractère à chaque fois....

mais comment vérifier qu'en appliquant mon xor je ne fais pas de
bêtises..??? faut il faire une vérification quelquonque ?
merci de votre aide,
dav

5 réponses

Avatar
dav
j'ai esayé dans un premier temps ceci avec un fichier access 2000 :

Dim a As Integer
Dim car As String * 1
Dim f
Dim longueur As Long
Dim fichier As String
Dim cle As Long
cle = 9

fichier = App.Path & "fichier.mdb"

f = FreeFile
On Error Resume Next
'on désactive la gestion des erreurs
longueur = FileLen(fichier)
Open fichier For Binary As #f
For a = 1 To longueur
Get #f, a, car
car = Chr$(Asc(car) Xor cle)
Put #f, a, car
Next

Close

et j'ai l'erreur suivante : "dépacement de capacité".


dav a écrit :

j'ai conçu un petit dictionnaire perso compilé en un petit exe que je
désire crypter pour le protéger.
je ne sais trop comment envisager la chose. un simple xor devrait
suffire. pourriez vous m'apporter vos idées.
voici ce que j'envisage :

ouvrir le fichier A
en ouvrir un autre ou j'écrirai A codé.
lire caractère par caratère A et appliquer un xor d'après une chaine de
caractère sur laquelle je preleve un caractère à chaque fois....

mais comment vérifier qu'en appliquant mon xor je ne fais pas de
bêtises..??? faut il faire une vérification quelquonque ?
merci de votre aide,
dav


Avatar
dav
j'ai trouvé : j'ai pasé mon a en long au lieu de integer...

par contre le cryptage est TRES long avec des bases qui dépassent 500
Ko....cela bloque l'appli. y a t-il un moyen d'optimiser tout ça ?

merci,
dav


dav a écrit :

j'ai esayé dans un premier temps ceci avec un fichier access 2000 :

Dim a As Integer
Dim car As String * 1
Dim f
Dim longueur As Long
Dim fichier As String
Dim cle As Long
cle = 9

fichier = App.Path & "fichier.mdb"

f = FreeFile
On Error Resume Next
'on désactive la gestion des erreurs
longueur = FileLen(fichier)
Open fichier For Binary As #f
For a = 1 To longueur
Get #f, a, car
car = Chr$(Asc(car) Xor cle)
Put #f, a, car
Next

Close

et j'ai l'erreur suivante : "dépacement de capacité".


dav a écrit :

j'ai conçu un petit dictionnaire perso compilé en un petit exe que je
désire crypter pour le protéger.
je ne sais trop comment envisager la chose. un simple xor devrait
suffire. pourriez vous m'apporter vos idées.
voici ce que j'envisage :

ouvrir le fichier A
en ouvrir un autre ou j'écrirai A codé.
lire caractère par caratère A et appliquer un xor d'après une chaine
de caractère sur laquelle je preleve un caractère à chaque fois....

mais comment vérifier qu'en appliquant mon xor je ne fais pas de
bêtises..??? faut il faire une vérification quelquonque ?
merci de votre aide,
dav




Avatar
Bul
bonjour,
_ lire/écrire les caractères par
block de n et non pas par 1
_ ajouter DoEvents de temps
en temps
@+
Avatar
Patrice Henrio
Le Xor sur une plage d'octets est une fonction bijective permettant le
codage
A XOR X = Y
Pour un octet : X vaut de 0 à 255, sui X parcourt cet intervalle, Y
parcourera aussi cet intervalle. De plus ce codage est auto-réversible (il y
a un autre mot pour cela mais je ne m'en rappelle plus), c'est à dire que A
XOR Y redonne X

Par contre il y a un inconvénient car chaque lettre est toujours codée de la
même façon donc pour un dictionnaire on peut casser rapidement le codage.

Une idée serait de changer la constante A à chaque lettre (ou groupe de
lettre).

Par exemple si on code X1,X2,X3,X4,X5
Y1=A Xor X1 >>> X1=A Xor Y1
Y2=X1 Xor X2>>>X2=X1 Xor Y2
...




"Bul" a écrit dans le message de news:
ua3RR5%
bonjour,
_ lire/écrire les caractères par
block de n et non pas par 1
_ ajouter DoEvents de temps
en temps
@+




Avatar
Quasimodo
dav pretended :
j'ai conçu un petit dictionnaire perso compilé en un petit exe que je désire
crypter pour le protéger.
je ne sais trop comment envisager la chose. un simple xor devrait suffire.
pourriez vous m'apporter vos idées.
voici ce que j'envisage :

ouvrir le fichier A
en ouvrir un autre ou j'écrirai A codé.
lire caractère par caratère A et appliquer un xor d'après une chaine de
caractère sur laquelle je preleve un caractère à chaque fois....

mais comment vérifier qu'en appliquant mon xor je ne fais pas de bêtises..???
faut il faire une vérification quelquonque ?
merci de votre aide,
dav



bonsoir,
vous pouvez utiliser les services d'encryption proposé par l'os
(windows 2000,xp,2003 - pour windows 95-98 vérifier l'existance de se
servicce), ceci afin de ne pas vous perdre en algorithmique et
vérification de la validité de ces algo. Voir : CAPICOM à
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/capicom_reference.asp
et :
http://www.vbi.org/Folders/index.asp?idW2
http://www.freevbcode.com/ShowCode.asp?ID556
http://www.di-mgt.com.au/crypto.html
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21027172.html
http://www.freevbcode.com/ShowCode.Asp?ID!31
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?optSort=Alphabetical&txtCriteria=cryptography&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage&blnResetAllVariables=TRUE&lngWId=1&B1=Quick+Search
etc ...

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com