VladislavIV
Messages postés16Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 1 mai 2007 24 juil. 2006 à 10:31
Bonjour à tous.
Je sais qu'il se fait tard, mais faut croire que j'aime à converser quelques mois (années?) après qu'un sujet se soit épuisé...
Pour commencer, thecryingshadow, la fonction MD5 est une fonction de hashage, pas de cryptage. On va me dire que je chipotte, mais les mots sont là pour ça. :)
Ensuite, ta fonction avecArgv() n'est pas une fonction. Une fonction (comme l'addition) retourne un résultat (2+2 = 4) qui peut être affecté à une variable
(res = 2+2). avecArgv() est une procédure. Parlons le même langage, ça aide à se comprendre.
Après les remarques amères :p, les remarques pratiques !
Il est déconseillé de donner à un scipt Python le même nom qu'un module existant. Ton script se nomme md5, et il importe un module nommé md5... A éviter.
Pour ce qui est de la variable CRYPTED, à éviter aussi : l'utilisateur n'a pas à changer le programme pour l'utiliser. Tu pourrai mettre un système d'appel à deux paramètres :
le premier indique que l'on veut hasher / retrouver un mot,
le second est le mot / le hash à traiter.
Exemple :
erreur = """
Usage : md5.py option chaine
option : -hash : hasher la chaine
-find : trouver le mot correspondant au hash chaine
"""
if len(argv) != 3: #mauvais appel du programme
print erreur
elif not argv[1] in ['-hash','-find']: #mauvaise option
print erreur
elif argv[1] == '-hash':
Hasher(argv[2]) #la chaine est un mot à hasher
elif argv[1] == '-find':
Trouver(argv[2]) #la chaine est un hash : rechercher le mot correspondant
Voilà voilà. Ca devrait te servir ! Sauf si tu t'en sers déjà :)
Bonne continuation.
jdalton42
Messages postés200Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention19 août 2009 11 mai 2005 à 11:49
ok
ben je vai essayer merci!
taz_iup
Messages postés179Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention21 mai 20143 11 mai 2005 à 11:40
il y a plus simple
tu peux configurer les variables d'environnement de windows ( linux aussi ) pou que le répertoire de python soit dans la variable PATH
Sous XP tu peut l'ajouter dans les prop du Poste de travail, et sous 98 il faut y mettre directement dans le fichier autoexec.bat
apres dans ta console tu n'as plus qu'aller dans le rep ou sont tes fichiers python et tu tape python fichier.py et c'est parti!
thecryingshadow
Messages postés1Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention28 février 2005 28 févr. 2005 à 13:22
Ensuite tu ouvres une invite de commandes MS-DOS et tu vas dans le repertoire python (qui est C:\Python22 par défaut).
Soit :
> cd C:\Python22
met le fichier scanner.py et le fichier liste.txt (du zip) dans ce répertoire (C:\Python22 ).
Sur l'invite de commandes, tu tapes :
> python scanner.py
tu remplaces par une adresse ip valide ou un nom de site comme sur la capture.
et tu fais entrer !
Et tu verras le résultat.
jdalton42
Messages postés200Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention19 août 2009 28 févr. 2005 à 07:15
salut,
je ne connais rien au "python" et j'ai pri ton script. mais je sais meme pas comment l'ouvrir! tu peux m'expliquer stp??
taz_iup
Messages postés179Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention21 mai 20143 22 févr. 2005 à 17:08
Pou ton info , il existe une fonction len ( len(argv) ) qui te permet de récuperer la taille d'un tableau......
ca marche aussi avec les chaines puisque se sont des tableaux de caractères.
des while 1: ca ne se fait pas ( je dit ca parce que j'ai vu aussi ton scaner HTTP, d'ailleurs je comprend pas pourquoi tu appelle ca une faille..... )
on fait plutot un truc comme ca...
lines = f.readlines()
for line in lines:
# traitement
C'est quand meme plus propre que de laisser python
declencher des exceptions.....
tu peux également simplifier ta fonction sansDC en
if( ch[-1] == "\n" ):
ch = ch[:-1]
Ce squi veux dire, si le dernier caractere est un retour de ligne alors ch est egal a ch du debut jusqu'a l'avant dernier caractère.
doc extraite de www.python.org ( si tu comprends l'anglais.... ):
readlines( [sizehint])
Read until EOF using readline() and return a list containing the lines thus read. If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (possibly after rounding up to an internal buffer size) are read. Objects implementing a file-like interface may choose to ignore sizehint if it cannot be implemented, or cannot be implemented efficiently.
Voila bon courage dans ton appretissage de python....
@+
24 juil. 2006 à 10:31
Je sais qu'il se fait tard, mais faut croire que j'aime à converser quelques mois (années?) après qu'un sujet se soit épuisé...
Pour commencer, thecryingshadow, la fonction MD5 est une fonction de hashage, pas de cryptage. On va me dire que je chipotte, mais les mots sont là pour ça. :)
Ensuite, ta fonction avecArgv() n'est pas une fonction. Une fonction (comme l'addition) retourne un résultat (2+2 = 4) qui peut être affecté à une variable
(res = 2+2). avecArgv() est une procédure. Parlons le même langage, ça aide à se comprendre.
Après les remarques amères :p, les remarques pratiques !
Il est déconseillé de donner à un scipt Python le même nom qu'un module existant. Ton script se nomme md5, et il importe un module nommé md5... A éviter.
Pour ce qui est de la variable CRYPTED, à éviter aussi : l'utilisateur n'a pas à changer le programme pour l'utiliser. Tu pourrai mettre un système d'appel à deux paramètres :
le premier indique que l'on veut hasher / retrouver un mot,
le second est le mot / le hash à traiter.
Exemple :
erreur = """
Usage : md5.py option chaine
option : -hash : hasher la chaine
-find : trouver le mot correspondant au hash chaine
"""
if len(argv) != 3: #mauvais appel du programme
print erreur
elif not argv[1] in ['-hash','-find']: #mauvaise option
print erreur
elif argv[1] == '-hash':
Hasher(argv[2]) #la chaine est un mot à hasher
elif argv[1] == '-find':
Trouver(argv[2]) #la chaine est un hash : rechercher le mot correspondant
Voilà voilà. Ca devrait te servir ! Sauf si tu t'en sers déjà :)
Bonne continuation.
11 mai 2005 à 11:49
ben je vai essayer merci!
11 mai 2005 à 11:40
tu peux configurer les variables d'environnement de windows ( linux aussi ) pou que le répertoire de python soit dans la variable PATH
Sous XP tu peut l'ajouter dans les prop du Poste de travail, et sous 98 il faut y mettre directement dans le fichier autoexec.bat
apres dans ta console tu n'as plus qu'aller dans le rep ou sont tes fichiers python et tu tape python fichier.py et c'est parti!
28 févr. 2005 à 13:22
Ensuite tu ouvres une invite de commandes MS-DOS et tu vas dans le repertoire python (qui est C:\Python22 par défaut).
Soit :
> cd C:\Python22
met le fichier scanner.py et le fichier liste.txt (du zip) dans ce répertoire (C:\Python22 ).
Sur l'invite de commandes, tu tapes :
> python scanner.py
tu remplaces par une adresse ip valide ou un nom de site comme sur la capture.
et tu fais entrer !
Et tu verras le résultat.
28 févr. 2005 à 07:15
je ne connais rien au "python" et j'ai pri ton script. mais je sais meme pas comment l'ouvrir! tu peux m'expliquer stp??
22 févr. 2005 à 17:08
ca marche aussi avec les chaines puisque se sont des tableaux de caractères.
des while 1: ca ne se fait pas ( je dit ca parce que j'ai vu aussi ton scaner HTTP, d'ailleurs je comprend pas pourquoi tu appelle ca une faille..... )
on fait plutot un truc comme ca...
lines = f.readlines()
for line in lines:
# traitement
C'est quand meme plus propre que de laisser python
declencher des exceptions.....
tu peux également simplifier ta fonction sansDC en
if( ch[-1] == "\n" ):
ch = ch[:-1]
Ce squi veux dire, si le dernier caractere est un retour de ligne alors ch est egal a ch du debut jusqu'a l'avant dernier caractère.
doc extraite de www.python.org ( si tu comprends l'anglais.... ):
readlines( [sizehint])
Read until EOF using readline() and return a list containing the lines thus read. If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (possibly after rounding up to an internal buffer size) are read. Objects implementing a file-like interface may choose to ignore sizehint if it cannot be implemented, or cannot be implemented efficiently.
Voila bon courage dans ton appretissage de python....
@+