• STATISTIQUES
  • Il y a eu un total de 2 membres et 6056 visiteurs sur le site dans les dernières 24h pour un total de 6 058 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 608
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [EN] w3challs
    Ce site propose différents types de défis informatiques: piratage, craquage, cryptographie, stég...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Générer un password
15-11-2014, 00h09 (Modification du message : 15-11-2014, 00h13 par cacaphonie.)
Message : #16
cacaphonie Hors ligne
Newbie
*



Messages : 12
Sujets : 3
Points: 11
Inscription : Oct 2014
RE: Générer un password
(13-11-2014, 10h57)Junky a écrit : Bonjour,

Nice bout de code Cacophonie. Smile

Juste une petite chose (tu vas dire que je chipotte Wink ) mais à chaque condition tu fait:
Code PYTHON :

mdpFinal = mdpFinal + mdpAjout
 


Tu peux le faire qu'une seule fois a la fin. Après ton 'else' et ca t'évites de le l'écrire 3 fois. Smile
Code PYTHON :

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-
import random
import string

def genPassword():
    lettre = list(string.ascii_lowercase)
    LETTRE = list(string.ascii_uppercase)
    chiffre = list(string.digits)
    mdpFinal = ""
    while(len(mdpFinal) < 9):
        hasard = random.randint(1, 3)
        if(hasard == 1):
            mdpAjout = random.choice(lettre)
        elif(hasard == 2):
            mdpAjout = random.choice(LETTRE)
        else:
            mdpAjout = random.choice(chiffre)
        mdpFinal = mdpFinal + mdpAjout
    print(mdpFinal)
genPassword()
 


De plus tu a oublié le '!' dans ton shébang. Smile

Sinon nice fonction et merci du partage. Smile

Junky,
Ah ouais Big Grin enfaite je flippais juste que le programme me renvoyait seulement le dernier resultat

(13-11-2014, 11h05)notfound a écrit : Tant qu'à chipoter, autant le faire jusqu'au bout :

Code PYTHON :

mdpFinal += mdpAjout
 


Thx pour le partage
Faut que je perde cette mauvaise attitude Wink
edit: habitude*
+1 (0) -1 (0) Répondre
15-11-2014, 03h42
Message : #17
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 271
Inscription : Sep 2012
RE: Générer un password
Ma touche personnelle :
Code BASH :

$ gpg --gen-random 0 9|base64
 


Et si vous êtes parano, vous pouvez utiliser le lvl 2 qui se base sur /dev/random :
Code BASH :

open("/dev/random", O_RDONLY)
 


My 2 cents
+1 (0) -1 (0) Répondre
26-11-2014, 13h25
Message : #18
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: Générer un password
moi je dis : ssh-keygen Big Grin
+1 (0) -1 (0) Répondre
26-11-2014, 13h29
Message : #19
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
RE: Générer un password
(26-11-2014, 13h25)sakiir a écrit : moi je dis : ssh-keygen Big Grin

?
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (0) -1 (0) Répondre
26-11-2014, 13h31
Message : #20
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 271
Inscription : Sep 2012
RE: Générer un password
(26-11-2014, 13h25)sakiir a écrit : moi je dis : ssh-keygen Big Grin

Tu veux dire utiliser une clé à la place de générer un password ?
+1 (0) -1 (0) Répondre
28-11-2014, 18h10
Message : #21
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: Générer un password
ben tu fais un mote de passe en fonction des la clé généré quoi
+1 (0) -1 (0) Répondre
27-12-2014, 13h21
Message : #22
Sh4dows Hors ligne
Tweetos
*



Messages : 293
Sujets : 5
Points: 49
Inscription : Dec 2012
RE: Générer un password
C'est super tout ça, mais il ne faut pas oublier qu'outre la complexité, un bon mot de passe c'est aussi sa durée de vie limité.

Bonnes fêtes au passage Smile
Faites ce que je dis et non ce que je fais !
+1 (0) -1 (0) Répondre
29-12-2014, 04h07
Message : #23
GreenBlood Hors ligne
Newbie
*



Messages : 17
Sujets : 0
Points: 14
Inscription : Aug 2014
RE: Générer un password
(14-11-2014, 20h37)eax64 a écrit :
Code BASH :

 p="";for i in {1..10}; do for j in $(seq $(($RANDOM%30+10))); do t=$(head -c $RANDOM /dev/urandom | md5sum | cut -d' ' -f1); echo -n $t; sleep 0.01; echo -en "\r$p"; done; p=$p$(head -c1 <<<$t); done;echo -e "$(tr 'a-z0-9' ' ' <<< $t)"
 


Outre la beauté du code, j'aime beaucoup comment ça se génère, la progression tout ça Big Grin
+1 (1) -1 (0) Répondre
29-12-2014, 21h12
Message : #24
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: Générer un password
BTW , un ptit code pour la sécurité d'un mot de passe , c'est un peu bidon mais bon ..

Code PYTHON :

import re
 
def isok(password):
    nbr = 0
    maj = 0
    min = 0
    if(re.match("[a-zA-Z0-9]+", password)):
        for char in data:
            if(ord(char) > 64 and ord(char) < 91):  #Maj Checking
                maj = maj + 1
            if(ord(char) > 96 and ord(char) < 123): #Min Checking
                min = min + 1
            if(ord(char) > 47 and ord(char) < 58):  #Nbr Checking
                nbr = nbr + 1
        if(len(password) >= 10 and nbr >= 1 and min >= 1 and maj >= 1):
            return 1
        else:
            return 0
 
+1 (0) -1 (0) Répondre
29-12-2014, 23h18
Message : #25
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: Générer un password
hum.. si ton mdp ne match pas la regex, la fonction isok() est censée retourner... quoi ?
et data c'est défini où ?

c'est carrément bidon même je dirais, tu l'as testé ton code avant de le poster ? Big Grin

toujours dans le même esprit, on pourra discuter du bienfondé des règles mais au moins le code est valide et un peu plus propre:
Code PYTHON :
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import string

MOT_DE_PASSE_OK, PAS_SUFFISAMENT_MIXTE, MOT_DE_PASSE_TROP_COURT, CARACTERES_NON_PREVUS = (1,0,0,0) # restrictif
#MOT_DE_PASSE_OK, PAS_SUFFISAMENT_MIXTE, MOT_DE_PASSE_TROP_COURT, CARACTERES_NON_PREVUS = (1,0,0,1) # permissif

def isok(password):
    nb_chiffres = 0
    nb_minuscules = 0
    nb_majuscules = 0
    nb_autres = 0

    for i in password:
        if i in string.ascii_lowercase:
            nb_minuscules += 1
        elif i in string.ascii_uppercase:
            nb_majuscules += 1
        elif i in string.digits:
            nb_chiffres += 1
        else:
            nb_autres += 1

    if len(password) < 10: # au moins 10 caracteres de long
        return MOT_DE_PASSE_TROP_COURT
    if nb_minuscules < 3 or nb_majuscules < 3 or nb_chiffres < 2:  # au moins 3 minuscules, 3 majuscules et 2 chiffres
        return PAS_SUFFISAMENT_MIXTE
    if nb_autres > 0:  # on fait quoi ? on valide ou pas ? (cf restrictif/permissif plus haut)
        return CARACTERES_NON_PREVUS
    return MOT_DE_PASSE_OK

if __name__ == '__main__':
    print 'le mot de passe choisi est %s' % (isok(raw_input('entrez un mot de passe: ')) and 'OK' or 'PAS BON')
    print '''
rappel, un bon mot de passe (selon mes criteres tout pourris) doit :
    - faire plus de 10 caracteres
    - comporter au minimum 3 majuscules
    - comporter au minimum 3 minuscules
    - comporter au minimum 2 chiffres'''

    if not CARACTERES_NON_PREVUS:
        print '''    - ne pas comporter d'autre caractere que majuscules, minuscules ou chiffres'''
 


et le résultat, avec en entrée un mot de passe très sûr :
Code :
entrez un mot de passe: ILoveYou123
le mot de passe choisi est OK
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (1) -1 (0) Répondre
01-01-2015, 14h09
Message : #26
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: Générer un password
oui c'est archi bidon je sais , c'est l’interpréteur python de checkio.org qui me l'a validé.
+1 (0) -1 (0) Répondre
25-02-2015, 03h24
Message : #27
ZanyMonk Hors ligne
74686567617765
*



Messages : 5
Sujets : 0
Points: 6
Inscription : Nov 2014
RE: Générer un password
Bon c'est pas grand chose mais j'ai vu le titre du topic ça m'a donné envie de faire le mien, alors voilà. C'pas grand chose mais je crache jamais sur un peu de pratique en Python
Code PYTHON :

#!/usr/bin/env python2
import re, sys, string, random, argparse

parser = argparse.ArgumentParser(
        description='Generates a password'
)
parser.add_argument(
        '-l', '--length',
        type=int, default=8,
        help='Select password length (default: 8)'
)
parser.add_argument(
        '--lvl',
        type=int, default=3,
        help='Select password level between 1 & 5 (default: 3)'
)
args = parser.parse_args()

charsets = [
        string.ascii_lowercase,
        string.ascii_uppercase,
        string.digits,
        '+=!?-',
        ',;/:*$'
]

def generatePassword(length, level):
        charset = []
        for i in range(level):
                charset += list(charsets[i])
       
        password = ''
        while 1:
                for c in range(length):
                        password += str(random.choice(charset))
                if(checkPassword(password, level)):
                        break
                password = ''

        return password

def checkPassword(password, level):
        for i in range(level):
                if(not re.search(r"[" + re.escape(charsets[i]) + r"]", password)):
                        return False
        return True

print generatePassword(args.length, args.lvl)
 
+1 (5) -1 (0) Répondre
10-04-2015, 07h18 (Modification du message : 10-04-2015, 07h36 par otherflow.)
Message : #28
otherflow Hors ligne
Newbie
*



Messages : 20
Sujets : 2
Points: 18
Inscription : Aug 2014
RE: Générer un password
Bonjour à tous,

Pour ma part, mon script de génération de mots de passe est écrit en bash. Il se base sur les outils tr pour la gestion des différents charsets, et sur head pour la gestion de la taille du mot de passe. L'entropie, quant à elle, est obtenu grâce à l'utilisation du pseudo device /dev/urandom. Ce script est doté d'une petite interface homme machine en ligne de commande permettant de paramétrer la taille et le charset souhaité.

La description des options :
Code :
$ genpasswd

Usage : /usr/local/bin/genpasswd <options>

Options :
    --taille    [taille]
    --type      [type]    

Types disponibles :

alnum    lettres et chiffres
alpha    lettres
digit    chiffres
graph    caracteres imprimables, sans inclure les blancs
lower    lettres minuscules
print    caracteres imprimables, incluant les blancs
punct    caracteres de ponctuation
upper    lettres majuscules
xdigit   chiffres hexadecimaux

Le code :
Code :
#!/bin/bash

TYPES[0]="alnum"
TYPES[1]="alpha"
TYPES[3]="digit"
TYPES[4]="graph"
TYPES[5]="lower"
TYPES[6]="print"
TYPES[7]="punct"
TYPES[8]="upper"
TYPES[9]="xdigit"

OK=2

function usage() {
    echo -e "\nUsage : $0 <options>"
    echo -e "\nOptions :\n\t--taille\t[taille]\n\t--type\t\t[type]\t\n\nTypes disponibles :\n"
    echo -e "alnum\tlettres et chiffres"
    echo -e "alpha\tlettres"
    echo -e "digit\tchiffres"
    echo -e "graph\tcaracteres imprimables, sans inclure les blancs"
    echo -e "lower\tlettres minuscules"
    echo -e "print\tcaracteres imprimables, incluant les blancs"
    echo -e "punct\tcaracteres de ponctuation"
    echo -e "upper\tlettres majuscules"
    echo -e "xdigit\tchiffres hexadecimaux\n"
}

if [ $# -lt 1 ]
then
    usage
    exit
fi

# Traitement des arguments du script
ARG=("$@")

for N in `eval echo {0..$(($#-1))}`
do
    if [ -n "${ARG[$N]}" ]
    then
        if [ "${ARG[$N]}" == "--type" ] && [ -n "${ARG[$(($N+1))]}" ]
        then
            TYPE=${ARG[$(($N+1))]}
            N=$(($N+1))
        elif [ "${ARG[$N]}" == "--taille" ] && [ -n "${ARG[$(($N+1))]}" ]
        then
            LENGTH=${ARG[$(($N+1))]}
            N=$(($N+1))
        fi
    else
        usage
        exit
    fi
done

# Vérification de la validité du type passée en paramètre
for T in ${TYPES[*]}
do
    if [ "$TYPE" ==  "$T" ]
    then
        OK=$(($OK-1))
        break
    fi
done

# Vérification de la validité de la taille passée en paramètre
if [[ $LENGTH =~ ^-?[0-9]+$ ]]
then
    OK=$(($OK-1))
fi

# Génération du mot de passe
if [ $OK -eq 0 ]
then
    echo $(tr -cd "[:$TYPE:]" < /dev/urandom | head -c $LENGTH)
else
    usage
fi

Un exemple d'utilisation générant un mot de passe de 15 caractères alphanumérique :
Code :
$ genpasswd --taille 15 --type alnum
IFCMXcn30QDRNHC

otherflow
+1 (3) -1 (0) Répondre
29-08-2023, 15h09 (Modification du message : 29-08-2023, 15h11 par pepperspray77.)
Message : #29
pepperspray77 Hors ligne
Newbie
*



Messages : 1
Sujets : 0
Points: 0
Inscription : Aug 2023
RE: Générer un password
Ma devise favorite avec Python, plus c’est court.. mieux c’est Big Grin


Code :
import string, random
carac = string.ascii_letters + string.digits
mdp = "".join(random.choice(carac) for _ in range(9))
print(mdp)
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut