Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 24/02/2010, à 00:34

AnsuzPeorth

Re : [JEU] challenge bash #4

Merci, je l'avais déjà lu en plus !
C'est pas bon une mauvaise mémoire en programmation ....:(


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#27 Le 24/02/2010, à 01:18

nesthib

Re : [JEU] challenge bash #4

@AnsuzPeorth : segfault ou buffer overflow ? lol:lol::lol:

→[]


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#28 Le 24/02/2010, à 09:26

francoisp31

Re : [JEU] challenge bash #4

$ sh t
la generation de password charge une variable pass qui peut etre ensuite utilisee sous la forme pour charger un password dans
une application avec authentification
68B3329daX"@
$ sh t
la generation de password charge une variable pass qui peut etre ensuite utilisee sous la forme pour charger un password dans
une application avec authentification
68B3329da)

et le code

#!/bin/sh
echo la generation de password charge une variable pass qui peut etre ensuite utilisee sous la forme ${pass} pour charger un password dans 
echo une application avec authentification
unset pass
pass=$(echo $RANDOM$RANDOM | md5sum | tr '[a-z]' '[A-Z]' | cut -c 1-4)$(echo $RANDOM$RANDOM | md5sum | cut -c 4-8)$(cut -c 1-4 /dev/urandom | head -1)
retour=$?
echo ${pass}
exit $retour

c'est un poil casse b.... de devoir frapper alt+n° pendant la saisie du password pour certains caracteres (semi-graphiques, majuscules accentuées ou autre caractères spéciaux) par exemple mais ça solidifie le password... wink

test de frappe d'un password utilisateur généré :
E,B,D,0,0,5,4,d,alt+235,a
c'est un poil chelou poour l'utilisateur final ! pour le "ë"

et il faut se mefier de /dev/urandom parceque si plusieurs langues sont installées on peut tomber sur des kanji ou des caractères en arabe ou ce genre de choses... à l'interpretation par la commmande echo : ça mon script le gère pas mais bon c'est fait en 5 minutes en arrivant au boulot alors hein.... big_smile mais ça devrait donner des idées à certains pour faire bien plus fiable

Dernière modification par francoisp31 (Le 24/02/2010, à 09:28)


Que les puces d'un millier de chiens galleux infeste le cul de celui qui osera vous gacher ne serai ce
qu'une seule journée de votre vie et que les bras lui soient trop court pour qu'il puisse se le gratter.

Hors ligne

#29 Le 24/02/2010, à 09:37

Totor

Re : [JEU] challenge bash #4

@Yannou90

L'objectif des challenges est aussi de vous donner des "tips". Donc je me permets quelques remarques sur ton code :

grep -a -o "[$DEF_PASS$MAJ_PASS$MIN_PASS$CHI_PASS$SPE_PASS]" /dev/urandom | tr -d "\n" | head -c "$NBR_PASS"

1. Encadre tes variables par des accolades. Ce n'est pas obligatoire mais c'est une bonne pratique dans certains cas.
2. L'utilisation de grep, tr et head est inutile. Tu peux tout faire en bash (D'ailleurs, si tu regardes bien mon script, il est "full-bash" et pourtant j'utilise également /dev/urandom).
Tu peux arriver au même résultat comme suit :

pwd=""
# tant que la longueur de la valeur de pwd est < NBR_PASS 
while ((${#pwd} < ${NBR_PASS}))
do
 # récupération d'une liste de caractères aléatoirement
 read chars < /dev/urandom
 # suppression des caractères qui ne sont pas dans la liste
 pwd="${pwd}${chars//[^${DEF_PASS}${MAJ_PASS}${MIN_PASS}${CHI_PASS}${SPE_PASS}]}"
end
# on ne prend que les NBR_PASS premiers caractères
pwd="${pwd:0:${NBR_PASS}}"

Certe, c'est plus long mais moins couteux en ressources.
Pour preuve de l'avantage de l'utilisation du full bash à l'utilisation d'outils externes :
lit ce fil

3. L'utilisation de "let" est obsolète
la syntaxe ((VAR_NBR++)) est préférée à let "VAR_NBR++"


-- Lucid Lynx --

Hors ligne

#30 Le 24/02/2010, à 09:45

Yannou90

Re : [JEU] challenge bash #4

Merci Totor pour ces précisions très utiles et constructives !
J'ai appris pas mal de trucs et espere apprendre encore , c'est ludique,excellent ! wink

Dernière modification par Yannou90 (Le 24/02/2010, à 09:45)

Hors ligne

#31 Le 24/02/2010, à 10:22

sputnick

Re : [JEU] challenge bash #4

Totor a écrit :

1. Encadre tes variables par des accolades. Ce n'est pas obligatoire mais c'est une bonne pratique dans certains cas.

Pour moi c'est utile que si il y a risque de confusion comme avec cette variable foo :

echo "base$foozodb"

Sinon, non. Dans de rares cas, ça peux etre utile quand ca jouxte de la ponctuation.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#32 Le 24/02/2010, à 11:41

Yannou90

Re : [JEU] challenge bash #4

Totor a écrit :

@Yannou90

L'objectif des challenges est aussi de vous donner des "tips". Donc je me permets quelques remarques sur ton code :

grep -a -o "[$DEF_PASS$MAJ_PASS$MIN_PASS$CHI_PASS$SPE_PASS]" /dev/urandom | tr -d "\n" | head -c "$NBR_PASS"

1. Encadre tes variables par des accolades. Ce n'est pas obligatoire mais c'est une bonne pratique dans certains cas.
2. L'utilisation de grep, tr et head est inutile. Tu peux tout faire en bash (D'ailleurs, si tu regardes bien mon script, il est "full-bash" et pourtant j'utilise également /dev/urandom).

Je sais que bash est un "interpreteur" et qu'il a sa propre synthaxe mais ne connaissant l'outil que depuis peu , le terme "full-bash" est très approximatif pour moi , et je souhaite justement acquerir et maîtriser (en partie,faut pas deconner lol ) ce langage , d'ou ma contribution a ce post en tand que semi-noob ou mini-geek tongue

Totor a écrit :

Tu peux arriver au même résultat comme suit :

pwd=""
# tant que la longueur de la valeur de pwd est < NBR_PASS 
while ((${#pwd} < ${NBR_PASS}))
do
 # récupération d'une liste de caractères aléatoirement
 read chars < /dev/urandom
 # suppression des caractères qui ne sont pas dans la liste
 pwd="${pwd}${chars//[^${DEF_PASS}${MAJ_PASS}${MIN_PASS}${CHI_PASS}${SPE_PASS}]}"
end
# on ne prend que les NBR_PASS premiers caractères
pwd="${pwd:0:${NBR_PASS}}"

Certe, c'est plus long mais moins couteux en ressources.
Pour preuve de l'avantage de l'utilisation du full bash à l'utilisation d'outils externes :
lit ce fil

J'avais aussi remarqué la facilité avec laquel toi et tes "congénére" wink arriviez a simplifier une fonction , un code ,...,pour optimiser le resultat et les nombreux poste m'ont largement recompensés : merci mille fois !!

Totor a écrit :

3. L'utilisation de "let" est obsolète
la syntaxe ((VAR_NBR++)) est préférée à let "VAR_NBR++"

Typiquement ce pourquoi je participe !

Dernière modification par Yannou90 (Le 24/02/2010, à 11:50)

Hors ligne

#33 Le 24/02/2010, à 11:55

Totor

Re : [JEU] challenge bash #4

@sputnick : c'est effectivement le seul cas et c'est pour cela que j'ai pris l'habitude. J'ai été confronté à ce problème dès mes début en script !


-- Lucid Lynx --

Hors ligne

#34 Le 28/02/2010, à 16:01

nesthib

Re : [JEU] challenge bash #4


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#35 Le 28/02/2010, à 16:07

Ph3nix_

Re : [JEU] challenge bash #4

Serait-il possible d'avoir une explication sur le choix du code vainqueur ou pourquoi les autres codes n'ont pas été retenu ?

Autant dans les autres challenges il y avait un explication clair et concise mais pour ce challenge-ci aucune explication n'est donnée alors que tous les participants ont trouvé une solution dans les règles imposés.

Edit: j'ai déjà envoyé ce message en mp mais aucune réponse hmm


Hiroshima 45 / Chernobyl 86 / Windows '95

Hors ligne

#36 Le 28/02/2010, à 16:34

nicolas66

Re : [JEU] challenge bash #4

Ouais surtout que j'ai eu l'impression de remplir la plupart des critères mentionnés (première solution acceptable, code clair et commenté, etc.). A part sur l'originalité et les fonctionnalités, je vois pas où j'ai pu perdre des points hmm


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#37 Le 28/02/2010, à 16:52

nesthib

Re : [JEU] challenge bash #4

dsl Ph3nix_ je n'ai pas encore pris le temps de te répondre (boulot + pas eu l'occaz de discuter en live avec Totor et sputnick) en gros AnsusPeorth a utilisé les subtilités du bash et a utilisé le code ascii ce qui nous a fait voter pour lui, après ce ne remet en aucun cas la qualité de ta contribution wink Il n'y a pas de points à proprement parler, c'est le sentiment général qui l'emporte après discussion.

Si vous préférez une méthode plus démocratique pour désigner le vainqueur je n'y vois pas d'inconvénient mais il faut que ce soit pratique je n'aurais pas le temps de faire un compte détaillé de votes ou autres sur plusieurs jours.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#38 Le 28/02/2010, à 17:51

Yannou90

Re : [JEU] challenge bash #4

Bonjour

Personnellement j'ai bien compris le choix des animateurs , entre l'utilisation de bash (car là est le coeur du débat) , la méthode et la rapiditée , il n'y a pas photo.
Après , franchement , l'histoire d'être ou non le vainqueur m'importe peu , et devrait ne pas préoccuper les participants puisqu'ici les codes sont "partagés" , commentés voir "corrigés" !
Ces challenges sont plus un exercice de style , qui permet au plus noob d'acquérir de nouvelles connaissances !
Perso j'adore tongue

Hors ligne