PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > MD5
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
MD5

Réponse
 
LinkBack Outils de la discussion
Vieux 06/09/2007, 12h09   #26
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Olivier Miakinen a écrit :

> Je suis d'accord avec Laurent. Même si ce n'est pas une « erreur » Ã
> proprement parler, harmoniser l'usage des accolades dans un même
> « if ... else ... » me semble une excellente idée pour la lisibilité.
>
> Pour ma part, je les mets systématiquement si je change de ligne.


J'avoue que j'use des accolades en fonction des langage. Par exemple,
en PHP, je les met systématiquement en raison de l'opérateur elseif.
Allez trouver l'erreur :

if(cond1)
if(subcond1) bla() ;
elseif(subcond1) bla() ;
elseif(subcond1) bla() ;
else
bla() ;

Mais en C et C++, j'évite les accolades quand elle sont inutiles (car
je sais que l'ouverture d'un block entraîne l'empilement de l'adresse de
retour.

Étant donné qu'en javascript il n'y a pas de elseif, je ne met pas
d'accolades lorsqu'il n'y a qu'une instruction.

Mais au final, c'est une question de style, pas de défaut du langage.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 06/09/2007, 12h09   #27
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Olivier Miakinen a écrit :

> Je suis d'accord avec Laurent. Même si ce n'est pas une « erreur » Ã
> proprement parler, harmoniser l'usage des accolades dans un même
> « if ... else ... » me semble une excellente idée pour la lisibilité.
>
> Pour ma part, je les mets systématiquement si je change de ligne.


J'avoue que j'use des accolades en fonction des langage. Par exemple,
en PHP, je les met systématiquement en raison de l'opérateur elseif.
Allez trouver l'erreur :

if(cond1)
if(subcond1) bla() ;
elseif(subcond1) bla() ;
elseif(subcond1) bla() ;
else
bla() ;

Mais en C et C++, j'évite les accolades quand elle sont inutiles (car
je sais que l'ouverture d'un block entraîne l'empilement de l'adresse de
retour.

Étant donné qu'en javascript il n'y a pas de elseif, je ne met pas
d'accolades lorsqu'il n'y a qu'une instruction.

Mais au final, c'est une question de style, pas de défaut du langage.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 06/09/2007, 12h12   #28
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

En réponse à Olivier Miakinen qui écrivit, en date du : 6/09/07 12:56,
le message suivant :
>
> mais jamais :
> if (test) {
> instruction;
> instruction;
> instruction;
> } else
> instruction;


Personnellement :

if (test) {
instruction;
instruction;
instruction;
}
else instruction;

M'est farpaitement lisible contrairement à :

if (test) {
instruction;
instruction;
instruction;
} else {
instruction;
}

Où les { } sont un peu noyées
et les if else pas posés au même alinéa (on dit alinéa dans ce cas ?)


et je préfère :

if(test)
{
instruction;
instruction;
instruction;
}
else instruction;

même si :

if(test)
{
instruction;
instruction;
instruction;
}
else
{
instruction;
}

pourrait être plus "propre"


des gouts et des couleurs ?
de sa propre lecture photographique ?

--
SM
  Réponse avec citation
Vieux 06/09/2007, 12h12   #29
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

En réponse à Olivier Miakinen qui écrivit, en date du : 6/09/07 12:56,
le message suivant :
>
> mais jamais :
> if (test) {
> instruction;
> instruction;
> instruction;
> } else
> instruction;


Personnellement :

if (test) {
instruction;
instruction;
instruction;
}
else instruction;

M'est farpaitement lisible contrairement à :

if (test) {
instruction;
instruction;
instruction;
} else {
instruction;
}

Où les { } sont un peu noyées
et les if else pas posés au même alinéa (on dit alinéa dans ce cas ?)


et je préfère :

if(test)
{
instruction;
instruction;
instruction;
}
else instruction;

même si :

if(test)
{
instruction;
instruction;
instruction;
}
else
{
instruction;
}

pourrait être plus "propre"


des gouts et des couleurs ?
de sa propre lecture photographique ?

--
SM
  Réponse avec citation
Vieux 06/09/2007, 12h13   #30
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Laurent vilday a écrit :

>> Non. Je un peu pénible.

>
> Quoi quoi quoi ?


> Tu peux me la refaire en français STP, j'avoue ne rien avoir compris.


Et à la lumière de ce lapsus je suis terrifié. Il fallait lire « Juste
» en lieu et place de « Je ».

> Oui et alors ? Tu l'as déjà dit et j'ai *jamais* dit le contraire,
> j'allais même dans ton sens, si si. Mais bon, tout le contexte ayant été
> supprimé de ton message c'est plus difficile de s'en rendre compte.


Désolé, j'ai tendance à passer à la machette les messages.

> Bon, force est de constater que l'humour léger de mon post n'a pas percé
> la barrière de mon ordinateur. Tant pis un coup dans l'eau, j'essaierai
> d'être plus accessible la prochaine fois.


J'ai du mal à rire de sécurité informatique, surtout quand il y a un «
kikoo lol » dans la phrase

Si tu veux continuer ce troll velu, faisons-le en privé.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 06/09/2007, 12h13   #31
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Laurent vilday a écrit :

>> Non. Je un peu pénible.

>
> Quoi quoi quoi ?


> Tu peux me la refaire en français STP, j'avoue ne rien avoir compris.


Et à la lumière de ce lapsus je suis terrifié. Il fallait lire « Juste
» en lieu et place de « Je ».

> Oui et alors ? Tu l'as déjà dit et j'ai *jamais* dit le contraire,
> j'allais même dans ton sens, si si. Mais bon, tout le contexte ayant été
> supprimé de ton message c'est plus difficile de s'en rendre compte.


Désolé, j'ai tendance à passer à la machette les messages.

> Bon, force est de constater que l'humour léger de mon post n'a pas percé
> la barrière de mon ordinateur. Tant pis un coup dans l'eau, j'essaierai
> d'être plus accessible la prochaine fois.


J'ai du mal à rire de sécurité informatique, surtout quand il y a un «
kikoo lol » dans la phrase

Si tu veux continuer ce troll velu, faisons-le en privé.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 13/09/2007, 16h53   #32
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff a écrit :
> Mais au final, c'est une question de style, pas de défaut du langage.


Je ne suis pas d'accord.

Le langage autorise l'omission des accolades mais je reste persuadé que
c'est une erreur. Erreur induite par la présence de l'omission autorisée
des points-virgules ;

IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
l'autre, mais pas les deux.

Mais bon en parlant de défaut, le plus déroutant pour les débutants et
le plus inutile pour les avertis, c'est incontestablement les variables
qui peuvent être créées dans le scope le plus haut mais pas dans les
scopes intermédiaires.

global = 0;
function scope1()
{
global = 1;
function scope2()
{
// Impossible de déclarer une variable dans scope1 ici
// mais ça peut la déclarer tout en haut ??? du nawak
global = 2;
function scope3()
{
// Impossible de déclarer une variable dans scope2 ni scope1 ici
// mais ça peut la déclarer tout en haut ??? du nawak encore
global = 3;
}
}
}

--
laurent
  Réponse avec citation
Vieux 13/09/2007, 16h53   #33
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff a écrit :
> Mais au final, c'est une question de style, pas de défaut du langage.


Je ne suis pas d'accord.

Le langage autorise l'omission des accolades mais je reste persuadé que
c'est une erreur. Erreur induite par la présence de l'omission autorisée
des points-virgules ;

IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
l'autre, mais pas les deux.

Mais bon en parlant de défaut, le plus déroutant pour les débutants et
le plus inutile pour les avertis, c'est incontestablement les variables
qui peuvent être créées dans le scope le plus haut mais pas dans les
scopes intermédiaires.

global = 0;
function scope1()
{
global = 1;
function scope2()
{
// Impossible de déclarer une variable dans scope1 ici
// mais ça peut la déclarer tout en haut ??? du nawak
global = 2;
function scope3()
{
// Impossible de déclarer une variable dans scope2 ni scope1 ici
// mais ça peut la déclarer tout en haut ??? du nawak encore
global = 3;
}
}
}

--
laurent
  Réponse avec citation
Vieux 13/09/2007, 18h15   #34
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff <mickael.wolff@laposte.net> wrote:

> Patrick Mevzek a écrit :
>
> > http://actuel.fr.selfhtml.org/articl.../md5/index.htm

>
> À noter que, hacher le mot de passe avec md5 depuis le client est
> furieusement inutile. Au contraire, ça enlève une difficulté pour
> pirater un compte.


Trouvez le bon mot :-)

<http://astrophoto.free.fr/md5.html>

Thierry
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 18h15   #35
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff <mickael.wolff@laposte.net> wrote:

> Patrick Mevzek a écrit :
>
> > http://actuel.fr.selfhtml.org/articl.../md5/index.htm

>
> À noter que, hacher le mot de passe avec md5 depuis le client est
> furieusement inutile. Au contraire, ça enlève une difficulté pour
> pirater un compte.


Trouvez le bon mot :-)

<http://astrophoto.free.fr/md5.html>

Thierry
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 20h23   #36
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Laurent vilday a écrit :
> Mickaël Wolff a écrit :
>> Mais au final, c'est une question de style, pas de défaut du langage.

>
> Je ne suis pas d'accord.
>
> Le langage autorise l'omission des accolades mais je reste persuadé que
> c'est une erreur. Erreur induite par la présence de l'omission autorisée
> des points-virgules ;


L'absence des accolades n'est pas une omission. C'est justement le
contraire. Le mot clé if est suivi de la condition entre parenthèse puis
d'UNE instruction. L'usage d'accolades, c'est à dire l'introduction d'un
bloc d'instructions, est un contournement. Si on ne pouvais pas faire
ça, il faudrait déclarer une fonction à chaque fois qu'il y a besoin de
plus d'une instruction. Mais ce serait lourd

En ce qui concerne le ;, concrètement, à quoi sert-il ? Une fin de
ligne est déjà codée, pourquoi rajouter un symbole ?

> IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
> l'autre, mais pas les deux.


Le défaut, c'est surtout de ne pas être typé. C'est ce que je regrette
dans tout les langages de scripting (ou presque).

> Mais bon en parlant de défaut, le plus déroutant pour les débutants et
> le plus inutile pour les avertis, c'est incontestablement les variables
> qui peuvent être créées dans le scope le plus haut mais pas dans les
> scopes intermédiaires.


Je crois que tu n'as pas compris ce qu'est une variable globale :p .
Tu as commencé par quel langage de programmation à coder ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 13/09/2007, 20h23   #37
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Laurent vilday a écrit :
> Mickaël Wolff a écrit :
>> Mais au final, c'est une question de style, pas de défaut du langage.

>
> Je ne suis pas d'accord.
>
> Le langage autorise l'omission des accolades mais je reste persuadé que
> c'est une erreur. Erreur induite par la présence de l'omission autorisée
> des points-virgules ;


L'absence des accolades n'est pas une omission. C'est justement le
contraire. Le mot clé if est suivi de la condition entre parenthèse puis
d'UNE instruction. L'usage d'accolades, c'est à dire l'introduction d'un
bloc d'instructions, est un contournement. Si on ne pouvais pas faire
ça, il faudrait déclarer une fonction à chaque fois qu'il y a besoin de
plus d'une instruction. Mais ce serait lourd

En ce qui concerne le ;, concrètement, à quoi sert-il ? Une fin de
ligne est déjà codée, pourquoi rajouter un symbole ?

> IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
> l'autre, mais pas les deux.


Le défaut, c'est surtout de ne pas être typé. C'est ce que je regrette
dans tout les langages de scripting (ou presque).

> Mais bon en parlant de défaut, le plus déroutant pour les débutants et
> le plus inutile pour les avertis, c'est incontestablement les variables
> qui peuvent être créées dans le scope le plus haut mais pas dans les
> scopes intermédiaires.


Je crois que tu n'as pas compris ce qu'est une variable globale :p .
Tu as commencé par quel langage de programmation à coder ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 13/09/2007, 20h58   #38
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Thierry Loiseau a écrit :

> Trouvez le bon mot :-)


Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
serveur, bien évidemment :p

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 13/09/2007, 20h58   #39
Mickaël Wolff
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Thierry Loiseau a écrit :

> Trouvez le bon mot :-)


Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
serveur, bien évidemment :p

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
  Réponse avec citation
Vieux 13/09/2007, 21h25   #40
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff <mickael.wolff@laposte.net> wrote:

> Thierry Loiseau a écrit :
>
> > Trouvez le bon mot :-)

>
> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
> serveur, bien évidemment :p


Mais le test se fait en local :P
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 21h25   #41
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff <mickael.wolff@laposte.net> wrote:

> Thierry Loiseau a écrit :
>
> > Trouvez le bon mot :-)

>
> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
> serveur, bien évidemment :p


Mais le test se fait en local :P
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 21h45   #42
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Le 13/09/2007 22:25, Thierry Loiseau a écrit :
>>
>> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
>> serveur, bien évidemment :p

>
> Mais le test se fait en local :P


En local, je peux accéder à toutes les ressources que je veux sans
passer par ton code JavaScript. C'est pour accéder au compte sur le
serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
ce mot de passe.
  Réponse avec citation
Vieux 13/09/2007, 21h45   #43
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Le 13/09/2007 22:25, Thierry Loiseau a écrit :
>>
>> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
>> serveur, bien évidemment :p

>
> Mais le test se fait en local :P


En local, je peux accéder à toutes les ressources que je veux sans
passer par ton code JavaScript. C'est pour accéder au compte sur le
serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
ce mot de passe.
  Réponse avec citation
Vieux 13/09/2007, 21h47   #44
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Thierry Loiseau <loiseauthierry@free.fr> wrote:

> Mickaël Wolff <mickael.wolff@laposte.net> wrote:
>
> > Patrick Mevzek a écrit :
> >
> > > http://actuel.fr.selfhtml.org/articl.../md5/index.htm

> >
> > À noter que, hacher le mot de passe avec md5 depuis le client est
> > furieusement inutile. Au contraire, ça enlève une difficulté pour
> > pirater un compte.

>
> Trouvez le bon mot :-)
>
> <http://astrophoto.free.fr/md5.html>


Bon personne du coup et d'un coup n'a trouvé :

nmreglgermn

Thierry
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 21h50   #45
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Olivier Miakinen <om+news@miakinen.net> wrote:

> Le 13/09/2007 22:25, Thierry Loiseau a écrit :
> >>
> >> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
> >> serveur, bien évidemment :p

> >
> > Mais le test se fait en local :P

>
> En local, je peux accéder à toutes les ressources que je veux sans
> passer par ton code JavaScript. C'est pour accéder au compte sur le
> serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
> 898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
> JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
> ce mot de passe.


M*rdre ! Je ne comprends pas :

1) ta réponse
2) pourquoi toujours parler "côté serveur" ??

Thierry
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 21h50   #46
Thierry Loiseau
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Olivier Miakinen <om+news@miakinen.net> wrote:

> Le 13/09/2007 22:25, Thierry Loiseau a écrit :
> >>
> >> Ce sera 898f3e39c22962e38a389994a49c47ae qu'il faudra envoyer au
> >> serveur, bien évidemment :p

> >
> > Mais le test se fait en local :P

>
> En local, je peux accéder à toutes les ressources que je veux sans
> passer par ton code JavaScript. C'est pour accéder au compte sur le
> serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
> 898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
> JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
> ce mot de passe.


M*rdre ! Je ne comprends pas :

1) ta réponse
2) pourquoi toujours parler "côté serveur" ??

Thierry
--
4 Calculs & Astronomie en Javascript : <http://astrophoto.free.fr>
3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.. ...'....60.....'....72
  Réponse avec citation
Vieux 13/09/2007, 22h12   #47
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Le 13/09/2007 22:50, Thierry Loiseau a écrit :
>>
>> En local, je peux accéder à toutes les ressources que je veux sans
>> passer par ton code JavaScript. C'est pour accéder au compte sur le
>> serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
>> 898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
>> JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
>> ce mot de passe.

>
> M*rdre ! Je ne comprends pas :
>
> 1) ta réponse
> 2) pourquoi toujours parler "côté serveur" ??


J'ai pris le fil en cours, mais -- si j'ai bien compris le contexte --,
Mickaël parlait du cas où l'on transmet un mot de passe à un serveur
pour accéder à un compte sur le serveur. Et il disait avec juste raison
que faire un hash MD5 sur le client avant d'envoyer le résultat du hash
au serveur était encore plus inefficace que d'envoyer le mot de passe en
clair sur le réseau, avec un hash MD5 fait sur le serveur. En effet,
supposons que tu aies eu accès à la base des mots de passe MD5-isés sur
le serveur, dans le premier cas (hash sur le client) il te suffit de
faire directement la requête avec le résultat du hash (que tu connais).
Dans le second cas, il te faudra sniffer le réseau pour connaître le mot
de passe en clair car la connaissance du hash ne te sert à rien.
  Réponse avec citation
Vieux 13/09/2007, 22h12   #48
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Le 13/09/2007 22:50, Thierry Loiseau a écrit :
>>
>> En local, je peux accéder à toutes les ressources que je veux sans
>> passer par ton code JavaScript. C'est pour accéder au compte sur le
>> serveur que j'ai besoin du bon mot de passe. Et si ce mot de passe est
>> 898f3e39c22962e38a389994a49c47ae je n'ai pas besoin non plus d'un code
>> JavaScript vérifiant que je connais une chaîne dont le code MD5 donne
>> ce mot de passe.

>
> M*rdre ! Je ne comprends pas :
>
> 1) ta réponse
> 2) pourquoi toujours parler "côté serveur" ??


J'ai pris le fil en cours, mais -- si j'ai bien compris le contexte --,
Mickaël parlait du cas où l'on transmet un mot de passe à un serveur
pour accéder à un compte sur le serveur. Et il disait avec juste raison
que faire un hash MD5 sur le client avant d'envoyer le résultat du hash
au serveur était encore plus inefficace que d'envoyer le mot de passe en
clair sur le réseau, avec un hash MD5 fait sur le serveur. En effet,
supposons que tu aies eu accès à la base des mots de passe MD5-isés sur
le serveur, dans le premier cas (hash sur le client) il te suffit de
faire directement la requête avec le résultat du hash (que tu connais).
Dans le second cas, il te faudra sniffer le réseau pour connaître le mot
de passe en clair car la connaissance du hash ne te sert à rien.
  Réponse avec citation
Vieux 17/09/2007, 14h49   #49
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff a écrit :
> Laurent vilday a écrit :
>> Mickaël Wolff a écrit :
>>> Mais au final, c'est une question de style, pas de défaut du langage.

>> Je ne suis pas d'accord.
>>
>> Le langage autorise l'omission des accolades mais je reste persuadé que
>> c'est une erreur. Erreur induite par la présence de l'omission autorisée
>> des points-virgules ;

>
> L'absence des accolades n'est pas une omission. C'est justement le
> contraire. Le mot clé if est suivi de la condition entre parenthèse puis
> d'UNE instruction. L'usage d'accolades, c'est à dire l'introduction d'un
> bloc d'instructions, est un contournement.


Je ne suis toujours pas d'accord, et ce qui me rassure, c'est que
Douglas Crockford va dans mon sens, et comme il a largement plus de
crédibilité que moi, je me sens moins seul sur le coup

<http://javascript.crockford.com/style1.html>

<cite>Douglas Crockford</cite>
<q lang="en">
JavaScript's if statement is similar to C's: it can take statements or
blocks. The problem with using statements is that a common error is very
difficult to detect. It is better to write

if ((e = c.indexOf(';', s)) == -1)
e = c.length;

as

if ((e = c.indexOf(';', s)) == -1) {
e = c.length;
}

Always use blocks in structured statements.
</q>

> En ce qui concerne le ;, concrètement, à quoi sert-il ? Une fin de
> ligne est déjà codée, pourquoi rajouter un symbole ?


euhh, peut être pour structurer les instructions et éviter les erreurs
d'interprétation ? Et peut être aussi parce que un saut de ligne n'a pas
beaucoup plus de signification qu'un espace, sauf dans quelques cas
rares (cf [exemple A] ci dessous, exemple direct de ECMA-262 §7.9).

if ( x ) y=25 z=33

Si on met de côté le parse error, c'est pas tout à fait pareil que

if ( x ) y = 25; z = 33;

ou encore

while ( i++ > 25 )
alert(i)

est *totalement* différent de

while ( i++ > 25 ) ;
alert(i);

Le ; n'est pas obligatoire ( il devrait ) mais lorsqu'il n'est pas
présent c'est à l'interpréteur de le rajouter en fourbe sans en avertir
personne. Hors dès qu'il y a intervention automatique sur un source, il
y a une dénaturation potentielle des instructions.

cf. ECMA-262 3e édition
chapitre 7.9 : Automatic Semicolor Insertion
<http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf>

[exemple A]

Cette règle est extrêmement dangereuse parce que ça peut tout changer
lorsqu'il existe un saut de ligne (LineTerminator) Ã la place du ;
supposé être ajouté.

return
a + b

Sera transformé, par cette règle 7.9, en

return ;
a + b ;

et lÃ, baam, bug introduit par l'insertion automatique puisque à priori
l'instruction désirée c'était :

return a + b;

>> IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
>> l'autre, mais pas les deux.

>
> Le défaut, c'est surtout de ne pas être typé. C'est ce que je regrette
> dans tout les langages de scripting (ou presque).


Tiens, c'est rigolo je trouve justement au contraire que c'est une force
des langages scriptés. IMO les variables typées ça a une importance
quand on compile un source et qu'on doit donc gérer très précisément les
zones mémoires attribuées. Tandis que pour les langages scriptés, ben
c'est pas au dev de gérer toutes ces saloperies d'adressage mémoire et
par conséquent, pas besoin de typer chaque variable.

> Je crois que tu n'as pas compris ce qu'est une variable globale :p .
> Tu as commencé par quel langage de programmation à coder ?


Ohhh que t'es vilain

<http://javascript.crockford.com/style2.html>

<cite>Douglas Crockford</cite>
<q lang="en">
Global variables are evil
</q>

--
laurent
  Réponse avec citation
Vieux 17/09/2007, 14h49   #50
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: MD5

Mickaël Wolff a écrit :
> Laurent vilday a écrit :
>> Mickaël Wolff a écrit :
>>> Mais au final, c'est une question de style, pas de défaut du langage.

>> Je ne suis pas d'accord.
>>
>> Le langage autorise l'omission des accolades mais je reste persuadé que
>> c'est une erreur. Erreur induite par la présence de l'omission autorisée
>> des points-virgules ;

>
> L'absence des accolades n'est pas une omission. C'est justement le
> contraire. Le mot clé if est suivi de la condition entre parenthèse puis
> d'UNE instruction. L'usage d'accolades, c'est à dire l'introduction d'un
> bloc d'instructions, est un contournement.


Je ne suis toujours pas d'accord, et ce qui me rassure, c'est que
Douglas Crockford va dans mon sens, et comme il a largement plus de
crédibilité que moi, je me sens moins seul sur le coup

<http://javascript.crockford.com/style1.html>

<cite>Douglas Crockford</cite>
<q lang="en">
JavaScript's if statement is similar to C's: it can take statements or
blocks. The problem with using statements is that a common error is very
difficult to detect. It is better to write

if ((e = c.indexOf(';', s)) == -1)
e = c.length;

as

if ((e = c.indexOf(';', s)) == -1) {
e = c.length;
}

Always use blocks in structured statements.
</q>

> En ce qui concerne le ;, concrètement, à quoi sert-il ? Une fin de
> ligne est déjà codée, pourquoi rajouter un symbole ?


euhh, peut être pour structurer les instructions et éviter les erreurs
d'interprétation ? Et peut être aussi parce que un saut de ligne n'a pas
beaucoup plus de signification qu'un espace, sauf dans quelques cas
rares (cf [exemple A] ci dessous, exemple direct de ECMA-262 §7.9).

if ( x ) y=25 z=33

Si on met de côté le parse error, c'est pas tout à fait pareil que

if ( x ) y = 25; z = 33;

ou encore

while ( i++ > 25 )
alert(i)

est *totalement* différent de

while ( i++ > 25 ) ;
alert(i);

Le ; n'est pas obligatoire ( il devrait ) mais lorsqu'il n'est pas
présent c'est à l'interpréteur de le rajouter en fourbe sans en avertir
personne. Hors dès qu'il y a intervention automatique sur un source, il
y a une dénaturation potentielle des instructions.

cf. ECMA-262 3e édition
chapitre 7.9 : Automatic Semicolor Insertion
<http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf>

[exemple A]

Cette règle est extrêmement dangereuse parce que ça peut tout changer
lorsqu'il existe un saut de ligne (LineTerminator) Ã la place du ;
supposé être ajouté.

return
a + b

Sera transformé, par cette règle 7.9, en

return ;
a + b ;

et lÃ, baam, bug introduit par l'insertion automatique puisque à priori
l'instruction désirée c'était :

return a + b;

>> IMO c'est un des gros défauts du langage, ça devrait être soit l'un soit
>> l'autre, mais pas les deux.

>
> Le défaut, c'est surtout de ne pas être typé. C'est ce que je regrette
> dans tout les langages de scripting (ou presque).


Tiens, c'est rigolo je trouve justement au contraire que c'est une force
des langages scriptés. IMO les variables typées ça a une importance
quand on compile un source et qu'on doit donc gérer très précisément les
zones mémoires attribuées. Tandis que pour les langages scriptés, ben
c'est pas au dev de gérer toutes ces saloperies d'adressage mémoire et
par conséquent, pas besoin de typer chaque variable.

> Je crois que tu n'as pas compris ce qu'est une variable globale :p .
> Tu as commencé par quel langage de programmation à coder ?


Ohhh que t'es vilain

<http://javascript.crockford.com/style2.html>

<cite>Douglas Crockford</cite>
<q lang="en">
Global variables are evil
</q>

--
laurent
  Réponse avec citation
Réponse


Outils de la discussion