OVH Cloud OVH Cloud

Crypter des données dans access

17 réponses
Avatar
Comment peut-on crypter des donn=E9es dans access pour=20
=E9viter que des administrateurs techniques puissent y=20
avoir acc=E8s en clair ?

7 réponses

1 2
Avatar
Michel Walsh
Salut,


si x est Asc(Mid(strCrypt, i, 1)

alors a = 128x ( notation algébrique)
et le codage est la partie entière de:

(( 128x + 127) -128x + 1)*u + 128x

où u est un nombre aléatoire entre 0 et 1 ( 0 inclus, 1 exclus). Or, si
je développe algébriquement:

= ( 128x + 127 - 128x + 1) *u + 128x
= 128u + 128x
= 128(u+x)


C'est donc du codage sur le principe de "lire un octet, ne rien foutre avec
le second", ou encore, de la même famille que lire un caractère, sauter
le(s) n prochains, ... En effet, 128x est un "shift", un déplacement vers
la droite de l'octet x, de 8 bits, et la partie entière de 128u rempli la
partie "shifté" par du bruit.



Espérant ne pas être trop ...démoralisant... :-)
Vanderghast, Access MVP




"Jessy Sempere [MVP]" wrote in message
news:bu0rsv$fpb$
Salut

Et le cryptage que je fais ci-dessous est-il plus fiable ?
Et du coup de quel type de cryptage s'agit-il ?

Merci
*********************************************
Function Cryptage(strCrypt As String) As String
Dim a&, i&
For i = 1 To Len(strCrypt)
a = Asc(Mid(strCrypt, i, 1)) * 128
Cryptage = Cryptage & "-" & Int(((a + 127) - a + 1) * Rnd + a)
Next
End Function

Function DeCryptage(strCrypt As String) As String
Dim i&, j&
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
DeCryptage = DeCryptage & Chr(Int(Mid(strCrypt, i + 1, j - i -
1) / 128))
Else
DeCryptage = DeCryptage & Chr(Int(Mid(strCrypt, i + 1) / 128))
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
*********************************************
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le
message

news:
Salut,


C'est mieux que du XOR, mais c'est quand même du "ESARINTULO", une
des


premières techniques utilisées pour essayer de décoder du texte. En
effet,


dans un texte où on soupçonne un codage un à un (à la Jules César, ou
autrement), la lettre e étant prédominante, après les espaces blancs,
son


code sera très probablement celui qui apparaît le plus souvent. Et plus
le


texte est long, plus la statistique a des chances d'être vérifiée.
Ensuite,

on regarde le code qui revient le plus fréquemment en second,
probablement


un s, en clair, et ainsi de suite, un a, un r... si il y a échec, on
peut


intervertir le a et le r, ... même que ce texte-ci, le t arrive avant le
s,

pas beaucoup de pluriels, et le r, manque de verbes à l'infinitif...mais
dans tous les cas, craquer le code est simple, et rapide, pour qui le
désire

réellement, si c'est du texte. Dans ton cas, le message est trop court,
évidemment, mais que chaque "nombre" soit un multiple de trois est un
autre

problème... ajouter, aléatoirement, 0, 1 ou 2 au résultat aurait
brouillé


l'ésarintulo un petit peu, chaque lettre ayant maintenant trois codes,
et


aurait caché la méchante multiplicité par 3 qui actuellement "donne"
quasiment l'algorithme de codage. Tu n'aurais, au décodage, qu'à
simplement

changer les / par des et le tour est joué... mais demeure que la
qualité

est bien en deça, quand même, du codage fourni par Jet (qui possède, de
plus, certains autres avantages, lors de recherche de données, etc. ) et
de

façon transparente à celui qui utilisera la base de données... car le
codage

esarintulo nécessite de communiquer la clé de décodage à tout et à
chacun,


des développeurs, autre sérieux problème de sécurité, à long terme. Car
comment changer la clé si l' "ennemie" vient à connaître le décodage,
par


exemple? On peut essayer de ré-inventer la roue, mais bien souvent, on
s'y


fait prendre... La technique utilisée par Jet est ... baveuse. On
connaît


la
méthodologie utilisée... elle est publique... mais elle est tellement
onéreuse à craquer, par la méthode brute, quand on ne connaît pas la clé
de

départ (même sur seulement 32 bits) qu'il faudrait plusieurs années à la
NASA (budget et capacité de calculs) pour y parvernir. On est loin du
XOR


utilisé pas MS Word 98.


Vanderghast, Access MVP



"Jessy Sempere [MVP]" wrote in message
news:btudig$apk$
Bonjour

Voici un type tout bête de cryptage qui peut-être utiliser :
Voilà ce que peut donner un cryptage :
-198-333-330-318-333-351-342
Il te suffit de faire :
Decrypte "-198-333-330-318-333-351-342"
pour voir ce que ça veut dire...

************************************************
Function Crypte(strCrypt As String) As String
Dim i%
For i = 1 To Len(strCrypt)
Crypte = Crypte & "-" & Asc(Mid(strCrypt, i, 1)) * 3
Next
End Function

Function Decrypte(strCrypt As String) As String
Dim i%, j%
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1, j - i - 1)
/



3)
Else
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1) / 3)
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message
news:


0a3201c3d91b$7cc5d470$
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées. Un
autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à côté ?


-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.















Avatar
Jessy Sempere [MVP]
Re,

Là tu m'épates... ;-))
J'ai suivi ton raisonnement (bon j'ai lu 3 fois quand même)
et je suis entièrement d'accord avec toi même si je ne l'aurais
pas trouvé tout seul...

Par contre quand est-il de son niveau de sécurité ???

Parce que là tu avais la valeur de x mais si tu ne l'as pas,
il te faut forcément connaître la valeur de u mais comme
celle-ci est impossible à déterminer (elle est aléatoire)
comment faire pour trouver x ???
Surtout qu'en plus j'ai utiliser 128 comme multiple mais
c'est pareil, j'aurais pu utiliser un autre multiple et je ne vois
pas ce qui pourrait permettre de l'identifier ???

Sinon y'a quand même une chose que je n'ai pas compris
dans ton explication, c'est :
En effet, 128x est un "shift", un déplacement vers
la droite de l'octet x, de 8 bits, et la partie entière de 128u rempli la
partie "shifté" par du bruit.


Merci et non tu n'es pas démoralisant, c'est toujours
intéressant d'essayer de comprendre... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le message
news:
Salut,


si x est Asc(Mid(strCrypt, i, 1)

alors a = 128x ( notation algébrique)
et le codage est la partie entière de:

(( 128x + 127) -128x + 1)*u + 128x

où u est un nombre aléatoire entre 0 et 1 ( 0 inclus, 1 exclus). Or,
si

je développe algébriquement:

= ( 128x + 127 - 128x + 1) *u + 128x
= 128u + 128x
= 128(u+x)


C'est donc du codage sur le principe de "lire un octet, ne rien foutre
avec

le second", ou encore, de la même famille que lire un caractère, sauter
le(s) n prochains, ... En effet, 128x est un "shift", un déplacement
vers

la droite de l'octet x, de 8 bits, et la partie entière de 128u rempli la
partie "shifté" par du bruit.



Espérant ne pas être trop ...démoralisant... :-)
Vanderghast, Access MVP






Avatar
Michel Walsh
Salut,


Je n'ai pas à identifier la valeur alétoire, car un saut simple me
permet de retrouver la séquence de x initiaux... en vertu de la
multiplication. En effet, regardons

x+u

dans ce contexte comme l'ajout d'une portion décimale à x. Ainsi, si x
vaut 63, alors x+u c'est quelque chose comme 63.6512396877. Supposons, pour
se faciliter la vie, pour illustration, que je multiplie par 100. J'obtiens
6365 (ne conservant que la partie entière). Puis, j'écris le tout comme
deux nombres de deux chiffres (base 10), j'obtiens: 63 65. Si je répète
ainsi de suite, en suposant que x est toujours entre 0 et 99, j'obtiens, en
bout de compte, toujours pour illustration, je pars avec 63, 16, 45 et,
après ajout du nombre aléatoire, 63.6512, 16.9902, 45.3434, soit, après
mutiplication par 100, et re-séparation par groupe de deux chiffres (base
10), quelque chose comme:

63 65 16 99 45 34


et je sais alors que, pour décoder, je n'ai qu'à sauter par dessus un
"nombre", une fois sur deux:

63 16 45

ce qui est effectivement le message, en clair! Le bruit, l'effet de Rnd, a
simplement conduit à produire ce que je n'ai pas lu:

65 99 34


Le 128 a le même effet que le 100, sauf qu'on est en base 2 au lieu
d'être en base 10 et on décale de 8 au lieu de deux positions. En fait,
toute multiplication peut être vue comme un décalage, tout comme 100 décale
le point décimal de deux positions. Reprenons avec plus de détails:


100( x+u) avec, disons, xc et x=.651239...

= 100( 63 + .651239... )
si je multiplie avant d'additionner, j'obtiens
= 6300 + 65.1239....
= 6365.1239...


le "bruit", 0.651239..., n'a servi qu'à remplir l'espace laissé libre
occupé par les deux zéros, dans 6300, après avoir multiplié par 100. Ce
n'est qu'une vue de l'esprit, bien sûr, les nombres ne "remplissent" pas et
il n'y a pas d'espace libre, "en soi", mais c'est simplement intéressant de
"voir" une multiplication, sous cet aspect. D'ailleurs, on pourrait
"presque" changer l'algorithme de codage en créant une nouvelle chaîne, en
remplissant les popsitions impaires par les lettres du message à coder, et
le positions impaires par n'importe quoi ( en fait, il faudrait avoir un
alphabet numéroté de 0 à 127, au lieu de 0 à 255 pour faire celà à
perfection, mais c'est dans l'esprit). Et comme tout algorithme de décodage
de ce codage effectue, en soi, la même chose que "sauter par dessus une
valeur sur deux", c'est un codage que je qualifierais de relativement
faible... d'autant plus qu'il est dans un environnement où je peux coder mes
propres phrases et en observer le résultat obtenu.



Espérant être utile,
Vanderghast, Access MVP

"Jessy Sempere [MVP]" wrote in message
news:bu1199$j84$
Re,

Là tu m'épates... ;-))
J'ai suivi ton raisonnement (bon j'ai lu 3 fois quand même)
et je suis entièrement d'accord avec toi même si je ne l'aurais
pas trouvé tout seul...

Par contre quand est-il de son niveau de sécurité ???

Parce que là tu avais la valeur de x mais si tu ne l'as pas,
il te faut forcément connaître la valeur de u mais comme
celle-ci est impossible à déterminer (elle est aléatoire)
comment faire pour trouver x ???
Surtout qu'en plus j'ai utiliser 128 comme multiple mais
c'est pareil, j'aurais pu utiliser un autre multiple et je ne vois
pas ce qui pourrait permettre de l'identifier ???

Sinon y'a quand même une chose que je n'ai pas compris
dans ton explication, c'est :
En effet, 128x est un "shift", un déplacement vers
la droite de l'octet x, de 8 bits, et la partie entière de 128u rempli
la


partie "shifté" par du bruit.


Merci et non tu n'es pas démoralisant, c'est toujours
intéressant d'essayer de comprendre... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le
message

news:
Salut,


si x est Asc(Mid(strCrypt, i, 1)

alors a = 128x ( notation algébrique)
et le codage est la partie entière de:

(( 128x + 127) -128x + 1)*u + 128x

où u est un nombre aléatoire entre 0 et 1 ( 0 inclus, 1 exclus). Or,
si

je développe algébriquement:

= ( 128x + 127 - 128x + 1) *u + 128x
= 128u + 128x
= 128(u+x)


C'est donc du codage sur le principe de "lire un octet, ne rien foutre
avec

le second", ou encore, de la même famille que lire un caractère, sauter
le(s) n prochains, ... En effet, 128x est un "shift", un déplacement
vers

la droite de l'octet x, de 8 bits, et la partie entière de 128u rempli
la


partie "shifté" par du bruit.



Espérant ne pas être trop ...démoralisant... :-)
Vanderghast, Access MVP











Avatar
Jessy Sempere [MVP]
Oui je te suis mais je suis perplex...

Tu semble dire que la partie aléatoire de l'algorythme remplie
un espace vide mais dans mon cas, l'espace vide est difficile à
déterminer.

Exemple pour le codage de la lettre "a"
Mon algo peut donner une valeur entre :
12416 et 12543

Donc si tu ne sais pas que la clé est 128, comment connais-tu
les valeurs à ignorer...
Effectivement si tu peux toi même encoder pour faire des tests,
tu vas bien finir par trouver mais si tu as par exemple :
-12550-14283-14139-13606-14287-15058-14625
ou alors -12579-14314-14185-13643-14334-15092-14621
ou alors -12632-14333-14111-13636-14221-15103-14678

comment peux-tu savoir que ces 3 codes veulent tous dire :
bonjour

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le message
news: OIr6#
Salut,


Je n'ai pas à identifier la valeur alétoire, car un saut simple me
permet de retrouver la séquence de x initiaux... en vertu de la
multiplication. En effet, regardons

x+u

dans ce contexte comme l'ajout d'une portion décimale à x. Ainsi, si x
vaut 63, alors x+u c'est quelque chose comme 63.6512396877. Supposons,
pour

se faciliter la vie, pour illustration, que je multiplie par 100.
J'obtiens

6365 (ne conservant que la partie entière). Puis, j'écris le tout comme
deux nombres de deux chiffres (base 10), j'obtiens: 63 65. Si je répète
ainsi de suite, en suposant que x est toujours entre 0 et 99, j'obtiens,
en

bout de compte, toujours pour illustration, je pars avec 63, 16, 45 et,
après ajout du nombre aléatoire, 63.6512, 16.9902, 45.3434, soit, après
mutiplication par 100, et re-séparation par groupe de deux chiffres (base
10), quelque chose comme:

63 65 16 99 45 34


et je sais alors que, pour décoder, je n'ai qu'à sauter par dessus un
"nombre", une fois sur deux:

63 16 45

ce qui est effectivement le message, en clair! Le bruit, l'effet de Rnd, a
simplement conduit à produire ce que je n'ai pas lu:

65 99 34


Le 128 a le même effet que le 100, sauf qu'on est en base 2 au lieu
d'être en base 10 et on décale de 8 au lieu de deux positions. En fait,
toute multiplication peut être vue comme un décalage, tout comme 100
décale

le point décimal de deux positions. Reprenons avec plus de détails:


100( x+u) avec, disons, xc et x=.651239...

= 100( 63 + .651239... )
si je multiplie avant d'additionner, j'obtiens
= 6300 + 65.1239....
= 6365.1239...


le "bruit", 0.651239..., n'a servi qu'à remplir l'espace laissé libre
occupé par les deux zéros, dans 6300, après avoir multiplié par 100. Ce
n'est qu'une vue de l'esprit, bien sûr, les nombres ne "remplissent" pas
et

il n'y a pas d'espace libre, "en soi", mais c'est simplement intéressant
de

"voir" une multiplication, sous cet aspect. D'ailleurs, on pourrait
"presque" changer l'algorithme de codage en créant une nouvelle chaîne, en
remplissant les popsitions impaires par les lettres du message à coder, et
le positions impaires par n'importe quoi ( en fait, il faudrait avoir un
alphabet numéroté de 0 à 127, au lieu de 0 à 255 pour faire celà à
perfection, mais c'est dans l'esprit). Et comme tout algorithme de
décodage

de ce codage effectue, en soi, la même chose que "sauter par dessus une
valeur sur deux", c'est un codage que je qualifierais de relativement
faible... d'autant plus qu'il est dans un environnement où je peux coder
mes

propres phrases et en observer le résultat obtenu.



Espérant être utile,
Vanderghast, Access MVP



Avatar
Michel Walsh
Salut,


la séquence binaire, la suite de zéros et de 1, sera plus parlante, il
va s'en dire. Je n'ai alors, après quelques "séquences" produites, qu'à
éléminer ce qui a varié. Si je représente par des 1 ce qui est commun aux
trois séquences et par zéro ce qui a différé d'une séquence à l'autre,
j'obtiens, en moins de quatre lignes de code (APL) que les 7 bits inférieurs
sont aléatoires (pièce jointe). Donc, pour peu que je suspecte ce genre
d'encodage (note que mes quatre lignes de code auraient décelées tout aussi
bien une séquence complexe genre 4 bits réels, 1 bit aléa, 3 bit réels, 3
bits aléa, 1 bit réel, 4 bits aléa ), c'est définitivement simple de repérer
le facteur multiplicatif.

La pièce jointe montre les quatre lignes de code, (en fait, les trois
premières ne font que capturer les donées, en base deux, donc une seule
ligne de code est tout ce que j'ai eu de besoin, ici) la cinquième ligne est
le résultat qui donne 1 si le bit est aléatoire, 0 si il est une donnée.




Espérant être utile,
Vanderghast, Access MVP


"Jessy Sempere [MVP]" wrote in message
news:bu16mi$mbk$
Oui je te suis mais je suis perplex...

Tu semble dire que la partie aléatoire de l'algorythme remplie
un espace vide mais dans mon cas, l'espace vide est difficile à
déterminer.

Exemple pour le codage de la lettre "a"
Mon algo peut donner une valeur entre :
12416 et 12543

Donc si tu ne sais pas que la clé est 128, comment connais-tu
les valeurs à ignorer...
Effectivement si tu peux toi même encoder pour faire des tests,
tu vas bien finir par trouver mais si tu as par exemple :
-12550-14283-14139-13606-14287-15058-14625
ou alors -12579-14314-14185-13643-14334-15092-14621
ou alors -12632-14333-14111-13636-14221-15103-14678

comment peux-tu savoir que ces 3 codes veulent tous dire :
bonjour

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le
message

news: OIr6#
Salut,


Je n'ai pas à identifier la valeur alétoire, car un saut simple me
permet de retrouver la séquence de x initiaux... en vertu de la
multiplication. En effet, regardons

x+u

dans ce contexte comme l'ajout d'une portion décimale à x. Ainsi, si
x


vaut 63, alors x+u c'est quelque chose comme 63.6512396877. Supposons,
pour

se faciliter la vie, pour illustration, que je multiplie par 100.
J'obtiens

6365 (ne conservant que la partie entière). Puis, j'écris le tout comme
deux nombres de deux chiffres (base 10), j'obtiens: 63 65. Si je
répète


ainsi de suite, en suposant que x est toujours entre 0 et 99, j'obtiens,
en

bout de compte, toujours pour illustration, je pars avec 63, 16, 45 et,
après ajout du nombre aléatoire, 63.6512, 16.9902, 45.3434, soit, après
mutiplication par 100, et re-séparation par groupe de deux chiffres
(base


10), quelque chose comme:

63 65 16 99 45 34


et je sais alors que, pour décoder, je n'ai qu'à sauter par dessus un
"nombre", une fois sur deux:

63 16 45

ce qui est effectivement le message, en clair! Le bruit, l'effet de Rnd,
a


simplement conduit à produire ce que je n'ai pas lu:

65 99 34


Le 128 a le même effet que le 100, sauf qu'on est en base 2 au lieu
d'être en base 10 et on décale de 8 au lieu de deux positions. En fait,
toute multiplication peut être vue comme un décalage, tout comme 100
décale

le point décimal de deux positions. Reprenons avec plus de détails:


100( x+u) avec, disons, xc et x=.651239...

= 100( 63 + .651239... )
si je multiplie avant d'additionner, j'obtiens
= 6300 + 65.1239....
= 6365.1239...


le "bruit", 0.651239..., n'a servi qu'à remplir l'espace laissé libre
occupé par les deux zéros, dans 6300, après avoir multiplié par 100. Ce
n'est qu'une vue de l'esprit, bien sûr, les nombres ne "remplissent" pas
et

il n'y a pas d'espace libre, "en soi", mais c'est simplement intéressant
de

"voir" une multiplication, sous cet aspect. D'ailleurs, on pourrait
"presque" changer l'algorithme de codage en créant une nouvelle chaîne,
en


remplissant les popsitions impaires par les lettres du message à coder,
et


le positions impaires par n'importe quoi ( en fait, il faudrait avoir un
alphabet numéroté de 0 à 127, au lieu de 0 à 255 pour faire celà à
perfection, mais c'est dans l'esprit). Et comme tout algorithme de
décodage

de ce codage effectue, en soi, la même chose que "sauter par dessus une
valeur sur deux", c'est un codage que je qualifierais de relativement
faible... d'autant plus qu'il est dans un environnement où je peux coder
mes

propres phrases et en observer le résultat obtenu.



Espérant être utile,
Vanderghast, Access MVP








begin 666 127.gif
M1TE&.#=AH0*B`/<``````( ```" `(" ````@( `@ " @(" @,# P/```#_
M`/__````__`_P#______P``````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````"P`````H0*B```(_P`/"!Q(L*#!@*ES(L*'#
MAQ C2IQ(L:+%:MS(L:/'CR!#BAQ)TB&"DRA3JES)LJ7+ES!CRIQ)LZ;-
MFSASZMS)LZ?/GT"#"AU*M*C1HTB%+D3PH*G3IU"C2IU*M:K5JUBS:MW*M:O7
MKV##BAU+MJS9LVC3JEW+MJU;M@@.,G6:M*[=NWCSZMW+MZ_?OX #"X[Y-"[!
MN8,3*U[,N+'CQY C2_[;U/ !II,S:][,N;/GSZ!#+3ITZA3JUZ->F)*
MUR@/%)A-N[;MV9=5"F3-N[?OW"#^]RMM73IXKOC%K!9('=LY*C2Y].O?KF
MRUSCGL2^53N"Y3?!/_]7":"^?/HK:M?S[Z]^Y@'O.:.WS6W^)KWC:,$@!7
M^_`!B@@:]PAM]U<!GZ77 `!L,3@=K+I!MU)_%7EWX 89JCAAHLY1]I,Z'T
M`'HDOG92<P,U%4!!`31%4'[)I50AB3.V=(!YN1%P(4_E[;??A3<","&'1!9I
MY&I#RA3B: KMZ!V*`CFUHD $GRYR0"6K;4HW%?G3C96/&)20".E*8
MY)%LMNDF9&O"M"1339JH($%2'E#E`P5AR5*-%#:UY79GDC<H3F4F>F:8;S;J
MZ*.#Q?G2G"-2Y:1]!DGIE$%^_CGB?I_^>>B703IG'@$`*CJV.J%Y4EG
M"NFLM-8*E*PV'CC:H4Q=>N)!4!W4Z:J"<EFLJ,B.6::,L HY9(^L^D<JCK96
M:^VUB&;K7:MA:HKE 3M.66?$KK499=>CBIMLX2:1R&O8TJ[[$DZ%HKMO?CF
MBRM+E/+J[9,&[:DBI__E>BGHL<BNNNYY9E[V):.O1<NECA,&F>_%&-NZ[TK]
M=NOKG0/M2=#XPHTK*<(VOOCUQN^3"[Z9();L9UVRSFQ[2F.NV_Z;T+Z8A
M;QKEP%>6:ZE3%9(65<MTTM>CLD+RZ9_%(_HW5::6>^Y?778(<M]MAD
MEVWVV6B#Y:%!+HHHK^'@2+5MAQ!V=-%59=UE?$%J#75/4ZEJIJ(
ME3I:VHPW[OCCD$<N^>2-KUU0VWR^3:.[L<E=-[!<7)R)=F)W^X>F+
M2]5ZZZLC2/GLM-=N^^VXYZ6AZ[SZS;L4[WFN40%C"Z[[#?O_-GC
M&^OVNTWT@?M070-_?SVW'?O_??@ZQXCB/2-KV3UUC,T6[ CA^_^^_#'+__
MR$F4N/V5W:;_;<=K3___``R@``=8.N89'0/D=UW]K>_XX6.@!",H 0G2$$*
M1NEF&,R@!MWTP))X(,@#*$(1TC"$IKPA"A,H0I7F) '&I"%,(RA#&=(PQK:
M(8XS*%(,N="'?KPAT ,HA"'2,0BXM!M/?1?!9?(Q"8Z8EKV99+N(.="Z8(
MBEC,HA:WN$72!:]32/-%;E(QC*:8SP:U]5P)A$-7ZM/)&#(QKG2,<Z>L^-
MAD/_HA4%<AZDF2<J<@1+( &Y-ZCTT2N')*18!FG(/Q(2/8V$9"0+N15&1O)J
MCGPD):N6R:Y8BF=;"0F0^G'3V;%E)+4Y"@WR4E6]L>5G%RE+">9R$JRDD:J
MU"0I:D54PH*E:3Y2=QV182H6->R1<(1G)RUX.,YA5^Z54FAG-:EZ2EJEL
M)2:E*4I+P5*.OO1F.(,)3DJ6LYO6U HU2SE-<B;-DN=TYC/]J,AT<A.>,X+E
M+$?93FZ",I_HM.=5UCE.@ :TGN'<9SLW&<]_^I.>8'/C)I$9'OX$YAA*
M+610B#[4HQOœT_JE&1?O24KFSF(%>ZMY(Z4YPIU>=#_UF*2)FFTZ4WM>E
M8XI/AX+4EPGUIDE':D^@ME2G!_UG3X4*4H$6YI/H:@8M0='HXKSJDQ-JD]/
MNE6E9C6D'-5J4[L:5+!.<J=D_292NWK6H7Z5IIZT*5R'.M>,E2F=;5J3=V:
M5K'F=**Y>I7G;J[U:5'1%*U*#L'NUB^:A6G>C4K6_TZUFR6<JF"M0I&$[I4
MG-IRFY%E;#G7.E:B$G:F1R7+9O796;5^!9B[3*U2YWE:S=Y22^9$*CZAB9:*
MMFQAB-5C1<<82]%N;IFL9:AE_RK9R9;VN:5M*$29*=N7]M.SEPWL9Z;4YBN
MLJRFG:TN<YO6=;X2M*Y=:'H!B_]0Y+)5NME][6T%2J*PMO<M%>7<;YDDW*FV
MC[>$!3!GE=M1U#;7N9FM;5DA6]WM=C.T/L4N2C<*X0-#U[X8%B9)&^Q((:W
MFA6^9W?E>]Z?KE?$)+[O-3&*UJ+#S!Y6$RZ1EB#?.3L<RU,6VQ:N'?!
M"+:M>MU)UQ.KD $E:N1)]QB`YNXKW$=HX#RF+V9KBN1,4RD['IWLKJU,-?
M>U+^-1?Q0:RRE;^<%Z76]L$2[C-0<XQG'OLU-"^6<@9INR%P7SA)_O9R0G&
ML7/MK%R[EAC08-7RH?F*90_SN3ZQZU9B4T1=.MMVQ"K><X-M[-CH<AB^'2;O
MG.F,V:+-%MB:CPYTB,LZE37^9VMCG6FK6O<]YZZSWA>L:R]2M];;]FQH/ZT
MKWL;:9:06<;#Y6,F:UG?%&-3O1^^K$I).UOJ-ENT,ZV/*')RWEDI8U3?)N
M8MM`,-TW+>%;;JIW4IU<SFW-=XI-<6];NV^DM[:EC:YV0UIPDQ:B6_DMZ"/
M;,>"&]O8OXV)/%<C_.$0C_CC<#6R*B:;X;ESN,0WSO&.0[B_O6XR$=.
MI&#7+$E3[G*5X[&DQ.7Y3"/N<PGZ'* S_SF.,Y^/]JCG&V:'PM/]>YT(<>
M09XGLMOFSG6TM1GN^1K:WL04YG+-V^2%#)<^[VL[&-SYWKJT!:E6
M))N=QU&6,KSK'?:O/]+>3+=TV7ANZ@?SVYTL?B9M]3Y>9I?[I(2V>UP+*NI>
M$[[I'$6R2$L]^$(#?MBQQ?6WK8["V)J4YW(O7YT-="=U1W
M.="=YNJ -SSH);?>UK^6,'A_GK:5[VMS6VTP"6O:-QC?>!4U_SD:>W7-4,9
M]1:>]I4='[G21S.HNT6[FDL8=[>&?:+EGWLL9WGS :_^_'-_::#ON!-9U[/
MJ?^=KOZ,#_6>Y<C_SLT3__]S"B/.O&=7WMBPQ3%L:W4HG8NRV6@'X7%4E
M< 38:9S'9MMG6JNW>EHG31#(:+A%=M^595UF?7<W7XP'?J,V-LZ'?V9U7*<'
M;%-G?L*7>FVV=_Y7;0/(@6QW8 =H@=S5?RSH;,/7;H7F;CCH4#R8@^'@$YG
M>:+W=SU(8VMW9Z.G%B$:$@W?:KF=()WA)W7?L,F
M>56X85(8AEFHA2MH9)PW?L79U.6=EW(:;C?#/88QKH>FOF:P/
M95SX>R;(@)ZF=EX8=8^%@F)(?:G;(AT=%B 68:(KX>(MDÐ8>E"(
M-J7'^&IT>'N)6%,UXF_!WVI"'^DYH?:%V>"*&=SZ(JRR(H>Z'#E
M=WPCN'M;B('HMX1I07>;V'N7!H:L]U;P9HJIR%*0-X0;6("@^(HTV'^+AUQF
M"'[3&&%^N(W$)UG>:'JS.(B8R(G%^(*5&&S[]W'V-Q!'MVR1R(;ZUG:$=X)D
MAW1>)W4V^(+X!G;/=GZ)5V[HIG@`&9 `")#3AGGCI5UL1HCL]X^^QWT1J8-
MEH_A)Y%2AX*&38A"#;">(982'0B.9(6U(XVESP?29(JN9(T9Y(]=SLIR9(R
M.9/_TY$T>9,XF9-;89,ZV9,^Z9,^9-".90K_QF41'F42(ES1MD6,3D639F4
M4!F55V%T.B,&A=O#PF$'YA^`GEV!5F)C55M5Z=+U4AYDJB*8,F 7=>59?EV
MYV=>5[ENI0B$E B6G#:1WC:1C$.,)1B.1T:0LW:1TT5@?==)25:.1-A:C9=X
M(Y68I_=HGZ=W,:B7]9BKE5EVE+AQ>87TB9A:(6JF.(*F/TH=BO-B9$^>2
M%_6(<"A^>':.9XECC?%ZJ=_H^E]&LB,3Z=T8%:;HB1M(B"<1F24W9]
M^QB*R9B;;F&'%2B-1J6'U">=L,A[EQB;WRB<58B<7!EO5MB;;<B&HQ>=>"6 MX"F+K^:&Z,B0NM67OOXC*H9EA2(FZHWG=:(GIKFA4%HE]9@?V)G_0I
MB@[8GO1'H &*=;7H='F:@FHGXCYGO#91KP6²H9Y)9:@L*7<@YD+:G
MBS (=_T(H'>(G;88?R!*CW69BIH..H@,]HB5J9?4BXD&#XE&+1A/EYH=3H
MEK YAMY9?6MH@+MW@[P9HZ/H8_19G $8:GD&I9 8AM?GI.G8C-5)H M8I.FY
ME5_CG' 6?3?FH";&AF5I4S*?[5VGAE)A=NYGEP&HTH:BK-)HXO8>@TYH%:J
MC5B*EN)G6;W'H11Z%I(:_ZIH'TZCW18I:!YF@=%?JR9I"'YHRBJG)-:I##
M>*=]]H;!>*17B(8IF)U)-86)ZCA266&&F[(6'?*Z)9RBJIQN)*H>
MY9CZ:%-ZJDAE9FR&JL,.JJ?MHZTJF.-:IJW&HU>GG0V'PN^8Y6R:LXBI=E
M9X_RI9$)Z94N6)%JN6_:*I:-]X.*ZH+3^I?>"G4EJIELN:V3"*@M6JZ"V::9
M]Z[P&J]QIZ*#VEOQ*38I^7,Z*I4`&[#(%G+/Z">[ (NY/[RCP&F[ .^[#'
MM+ 0.[$4^T1+6;$8F[$`_W2Q&MNQ'KMS$ONQ(CNRW<.Q`M2P:8&R-EH[*DNR
M*6>RX7.<55EX*,5JUG:L_-JN<JM-MNN..NR/0FSW-WV&>O3YJ!A&DVH;2)
M]QI[<T6T0#=F*OVJIF.F>*!I@<.JFS!FU1#>U+&MN4"M*%9:A
M-WJE&PBA$1I>:BN!Y6F68ANT(:NT?GEI^K>9DSJF][F8`'J76"MVR9>O=<MR
M9.MSS_F;W8JH`J8DJJNJ<:W6RN?VJFIARMTB0MT^<2M]8FF3EB8UJ:*DYN-
M`KID<2NXA9NY=FNA!3M:;SJB?:M('6JYJ:ZMUN#LXNV<^NJK'N3FRLYNJ>E
MMHG*M5F[J'#JI?5II.P%MLK[NQM'=@O?FHS7[J%9[
M>T^;M- K<U[/S^FLZ0IKS4+:SVK?&ACE1=ID=[5ONVVN^4;O;WC,^G;
M1"UK%@'LIY SP/OK1'BT$L<6O ?<P-#+</Y;9B_GP!1<P5$550418PQLP1P
MLA"LP?_4V$BS+KM8Q @[+HCG,(/S#<G/&,J_,*96(9S%#>WP?,,D^$T
MS*-NV-M^/7"L2(-2!N[+!&:Q'G,0-B,.>B,&'L</[RJ5,!9FFRYDM1L6Y
M*<77F'94[,-!_,5$O&,2FVKM?'&(5G6,*Z%I[)MK!9RS2IMO?)US:KR#
M:=XS,:52:%M30JL<#Q"<>.&IYR_'5K?*>"_'YJG+S%BL1+_,A&#,E+#8)
M_,?_FAM3,B+=L@@B<FQV*KBR<BBJL217,H(*LF3'%$@(L%#XFN3,=QO,ES
MK,>O3,NPO,¯O/B[EZ?,>I3'KP,;VN6N(?,N*[,:&/,NCQ6S+O:S+>]K(
MI'S*IOS+DE.HS+S,V-S)QIS)H%S(H5S$TAS.ASK.!*R_U)PVUIS-6TG,VGS-
M[:S.G/RSSS*J%S.N+S+YUQ_**S%%.9Y50RL)8;%RLO/5OR:RIJKTVS/OLS+
M#)W/9,/#$BW&8:RN8TS1V];%&SFNYJK1'NW/6>G09B%%N<+*+RG2*)V3
MY[LT_YO2+BVU6='2+SW3.GG2@,6,PC2=TS1ITS*MTSZMDCQMTC]U$"--(9T
MP34P42]U#>77V'".3?MPDP]U4W](>ZB7U&-QE2]U3$G9H<%Q3C-U6)-<F*V
M7Q&<U"<YUFH=<67-)0K<TVL=UQ#7UL8&UW)]UP5'UVMU'C=UP:GUY;,UWX]
MV'.D<()-V(A=1M)[V(G=V _'<R2],S7AV)0=.9'-+PZ$%3RWTBQMT=6V:"-
MSIG-TO+ADIZ=UE'AV:&]VDRH%:HMS,F$1Q-UVJQ=VR (2'E4'_^F[;M6XMJV
M_=M?2KB?K;!MI$;!Y#^ 0V8E#-S,_52$^]HF_5^FA-S*/=S0W=S8/95T.]RN
MO=OOXB_4G=S+G=WD319ZCwO=F&-3/V1R?5O3;E'=]A0=?ZY=ZZ7=RQ4]],
MXEOOG3DT+-`OI.1IM_<'=/>S2Q;XD('0B8<]T!7MYEK=_VS17JO2IO#=B!
M_> :;A5M?2@%KMD'#A,*+N(.ON'-C>%G3>$A/F87Y&F_N*I76QU7=K%31/F
M(^(PGN/^K20T/F/[0ATH>-"_N-A9I)"?N3)XW)(ON2YL]E&].10'N52/N54
E7N4VU-X;E.5:ON7N4!,_N7B8^5B/N8+9%[F9G[F:%X0`0$`.P``
`
end


Avatar
Michel Walsh
Salut,



Je viens de me rendre compte que certains bloquent systématiquement
les attachements (et messages avec attachement). Je reposte donc, sans
attachement. Je souligne qu'une conversion binaire (car un bit ne peut
contenir qu'une seule information) et comparaisons subséquentes permettent
de relever immédiatement 'l'arrangement" ceci-est-constant et ceci-varie
de codage en codage, du même message, et on trouve en un rien de temps, dans
ce cas, que les sept bits mineurs sont aléatoires, d'où l'utilisation
(probable) du facteur multiplicatif 128.



Vanderghast, Access MVP
Avatar
Jessy Sempere [MVP]
Merci

Je te crois sur parole mais là j'ai complètement décroché...
Mais je te remercie de toutes les infos que tu m'as données,
je me suis amusé à rendre un plus complex le codage que
j'avais proposé, il paraît pas trop mal, même si je ne m'en
servirais jamais, c'était pour faire mumuse...

PS : J'ai fais l'aolgorythme de cryptage en 5 minutes mais
par contre pour celui du décryptage, j'ai mis 2 heures...
C'est pour ça que je ne comprends pas comment quelqu'un
peut trouver le sens du code sans l'algorythme de cryptage ???

Merci pour tous

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le message
news: #
Salut,



Je viens de me rendre compte que certains bloquent
systématiquement

les attachements (et messages avec attachement). Je reposte donc, sans
attachement. Je souligne qu'une conversion binaire (car un bit ne peut
contenir qu'une seule information) et comparaisons subséquentes permettent
de relever immédiatement 'l'arrangement" ceci-est-constant et ceci-varie
de codage en codage, du même message, et on trouve en un rien de temps,
dans

ce cas, que les sept bits mineurs sont aléatoires, d'où l'utilisation
(probable) du facteur multiplicatif 128.



Vanderghast, Access MVP




1 2