Vous n’êtes pas connecté.

Bonjour, visiteur, bienvenu sur les forums Forum BloodWars - www.fr.bloodwars.net. Si c’est votre première visite, nous vous invitons à consulter l’Aide. Elle vous expliquera le fonctionnement de cette page. Pour avoir accès à toutes les fonctionnalités, vous devez vous inscrire. Pour cela, veuillez utiliser le formulaire d’enregistrement, ou bien lisez plus d’informations sur la procédure d’enregistrement. Si vous êtes déjà enregistré, veuillez vous connecter.

1

27. 01. 2014, 13:10

générateur de mdp

salut ^^


les mdp (parano ou non), sont crées par nous même, et donc, quiconque se doute, ou est intuitif, peut le trouver.


je propose ici un léger prog python 2.7.5 qui génère des mdp plus ou moins complexes, et qui les save dans un doc .txt.
en gros on le génère, on peut le coller direct où l'on veut, et il est sauvegardé, sans qu'on ait besoin de le visualiser. il sera consultable à tout moment.

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#! /usr/bin/python# -*- coding: cp1252 -*-
import randomimport stringimport pyperclipimport datetime
today = datetime.date.today()

print 'petit script pour un mdp \n\n\n'
appli = raw_input ('entre le nom du programme pour lequel tu souhaites générer un mot de pase\n\n')nom = raw_input ('entre le nom pour lequel tu es loggue\n\n')choix = raw_input ('''choisis un niveau de complexite du mdp:

1- 6 lettres + 2 chiffres2- 6 lettes en majuscules et minuscules + 2 chiffres3- 8 lettres et chiffres, majuscules et minuscules4- 12 lettres, chiffres et caracteres speciaux avec minuscules et majuscules''')
if choix == '1' :

    li1 = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')    mdp = random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+str(random.randint(0,9))+str(random.randint(0,9))    pyperclip.setcb(mdp)    spam = pyperclip.getcb()
    fichier = open('E:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")    fichier.write(mdp)    fichier.close()

    if choix == '2' :        li2 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')        mdp = random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+str(random.randint(0,9))+str(random.randint(0,9))        pyperclip.setcb(mdp)        spam = pyperclip.getcb()
        fichier = open('E:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")        fichier.write(mdp)        fichier.close()

if choix == '3':    li3 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')    print 'choix3'    mdp = random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)    pyperclip.setcb(mdp)    spam = pyperclip.getcb()
    fichier = open('E:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")    fichier.write(mdp)    fichier.close()

if choix == '4' :
         liste =('%','$','£','¨','^','*','µ','§','!','ù','/', 'ç','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')
         mdp = random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+str(random.randint(0,9))+str(random.randint(0,9))
         pyperclip.setcb(mdp)         spam = pyperclip.getcb()
         fichier = open('E:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")         fichier.write(nom + ' sur ' + appli + ' \n' + mdp)         fichier.close()

print ("""le mot de passe pour %s au nom de %s a été généré et copié dans le presse papier.\n          Il est enregistré dans D:\Mes Documents\MDP \n          Copie le mdp où tu souhaites en faisant un coller.""") %(appli,nom)



raw_input('presse une touche pour continuer')


il faut créer un dossier nommé 'MDP' en majuscules


vous remarquerez que sur cette ligne :
fichier = open('E:\MDP\\' +str(appli)+ ' ' + str(today)+".txt", "w")


il faut remplacer le lettre (ici E) par celle qui correspond à un disque dur existant, et créer le dossier 'MDP' dessus.


une fois python installé (par défaut sous les linux) ce mini prog générera des mdp,


pour l'instant les permissions windows ne m'ont pas permis d'enregistrer le doc txt sur un support amovible (clé usb)




edit : un screen :

Ce message a été modifié 1 fois, dernière modification par "PurePowerPlant" (27.01.2014, 13:28)


2

27. 01. 2014, 13:29

désolé , doucle post, mais 10000 caractères max :

suite ::

il y a quatre niveaux de complexité, ce qui est utile car certains sites ne permettent pas par exemple les caractères spéciaux.

info : nécessite la lib pyperclip pour utiliser la mémoire du presse papier, pour aboutir sur un clic : coller.

si qqn veut vérifier le code (il est propre, même si gras), voire m'aider à outrepasser l'uac qui ne me permet pas de gérer le stockage sur periph amovible, ainsi que gérer les autorisations pour interdire la lecture par un autre user que le proprio bécane, je prends !

sous py 2.7.5
!!!! pour les lib pyperclip, me mp

edit 2 : certains l'auront vu : ça enregistre dans "mes doc*\MDP\" --> juste mettre le chemin du dossier stockant, là j'avais tellement de morceaux par ci par là que j'ai pas copié le bon)



si qqn veut le fonctionnel et indenté, me mp aussi

!! pour l'indentation relative à python, pas compliqué, mais le bbcode ne m'a pas permis de présenter

exemple: import est à chaque début de ligne..

peace

Ce message a été modifié 2 fois, dernière modification par "PurePowerPlant" (27.01.2014, 17:59)


MégaBoulet

Dropinosaure à ses heures perdues

Messages: 2 584

ID UT2: 99625

  • Envoyer un message privé

3

27. 01. 2014, 21:56

Personellement j'utilise des combinaisons linéraires dans mes mots de passes et avec 14 caractères, majuscules, minuscules et nombres, s'pas le genre de choses qui peut être deviner, même par un proche qui me connait ;)

Concernant le support, j'suis pas fan. Tu fourni du code en python qu'à peu près personne ici ne sait executer. Un executable serait plus pratique (mais tu te heurterais à la méfiance de beaucoup de monde qui sont très content avec leur(s) mdp).


Si ça t'intéresse, la suite contient des remarques sur ton code. Possible que t'en ai rien à faire donc ça peut t'éviter de lire plus loin :P

La première chose qui me dérange est visuelle : les accents ne passe pas. Pourquoi ne pas changer d'encodage en modifiant le début du programme pour écrire :

Code source

1
2
#! /usr/bin/python
# -*- coding: utf-8 -*-


Pour les caractères dans tes listes, vu que ton programme n'est pas lourd, j'aurais plutôt mis des boucles 'for' et j'aurais travaillé avec le code ascii. Tu fais une liste pour les minuscules, une pour les majuscules, une pour les chiffres, une pour les caractères spéciaux.
Ensuite, selon le choix de l'utilisateur, tu va piocher dans ces 4 listes au hasard avec une boucle 'for' pour créer le mot de passe. Ça pourrais te permettre de tourner le programme autrement : tu propose à l'utilisateur de choisir le nombre de minuscules, majuscules, chiffres et caractères spéciaux qu'il veut.
En faisant ce traitement, ça t'éviterais pas mal de copier/coller :-)
Amendil
MégaChef de la confrérie des boulets
Créateur et chef de la confrérie anti-caravane

4

28. 01. 2014, 06:15

merci pour la réponse,

après l'utf8 que je n'ai pas utilisé, c'était pour prévenir les arrêts brusques au cas où j'aurais glissé un accent, et pour faire mes tests ça aurait été contraignant, le cpl ne stoppe pas l'exécution .
smais c'est clair que fini, je gèrerai caractère par caractère l'encodage, ou par ligne.


sinon, je suis d'accord que le public susceptible d'être intéressé a un python à la base. on peut faire des python-->.exe, mais c'est vite l'usine.

enfin concernant le choix du nombre de min, maj, chiffres, caractères etc, je trouvais un poil plus pratique de laisser le choix à la machine, d'autant que bien que ç alourdisse le tout, ça reste 'lisible'.
après si j'ai bien compris tu me parlais d'une liste unique avec tous les caractères numériques et non, puis en fonction du choix, les regex pour arriver au mdp voulu? ce serait bien plus léger en effet.


toi qui t'y connais un peu, mes recherches n'ont pas abouties sur les restriction stockage amovible...

MégaBoulet

Dropinosaure à ses heures perdues

Messages: 2 584

ID UT2: 99625

  • Envoyer un message privé

5

28. 01. 2014, 12:04

Pour les regex, je ne pensais pas forcément à ça. Je pense que les regex se basent sur le code ascii mais j'avais fais une recherche rapide sur internet et rien trouvé à ce sujet (surtout que la manière de gérer les regex dépend d'un langage à l'autre et je crois que je n'ai jamais utilisé de regex en python ^^' ). Du coup, ça pourrait être compliqué pour les caractères spéciaux.

Exemple :

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
chiffres = [i for i in range(10)] # Création de la liste de 0 à 9
minuscules = []
majuscules = []
for i in range(26): # range va de 0 à 25
    minuscules.append(chr(97+i)) # la fonction chr prend un nombre et ressort sa correspondance en ascii. chr(97) = a
    majuscules.append(chr(65+i)) # chr(65) = A

if choix == '1' :
    liste = minuscules+chiffres
    nbCharListe = 6
    nbChiffres = 2
if choix == '2' :
    liste = minuscules+majuscules
    nbCharListe = 6
    nbChiffres = 2
if choix == '3' :
    liste = minuscules+majuscules+chiffres
    nbCharListe = 8
    nbChiffres = 0

(...) # boucle for pour créer le mot de passe avec liste, nbCharListe et nbChiffres

fichier = open('E:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")
fichier.write(mdp)
fichier.close()

(...) # fin du code


Je serais plus parti sur une organisation de ce genre.

toi qui t'y connais un peu, mes recherches n'ont pas abouties sur les restriction stockage amovible...
-> Je n'avais jamais entendu parlé de restriction de stockage amovible et je t'avouerais que je ne suis pas un grand utilisateur de python. Je m'en suis un peu servi l'année dernière dans un cours. Je l'utilise pour trouver l'équation d'une droite pour l'analyse du système de quêtes et vraiment un tout petit peu il y a 1-2 semaines durant un TP.

édit :
D'ailleurs, pour initialiser minuscules on pourrait écrire : minuscules = [chr(97+i) for i in range(26)]
Amendil
MégaChef de la confrérie des boulets
Créateur et chef de la confrérie anti-caravane

Ce message a été modifié 1 fois, dernière modification par "MégaBoulet" (28.01.2014, 12:05)


6

08. 02. 2014, 03:09

en fait c'était dû à l'uac, mais sous le lecteur os, ça reste un poil plus dur...

depuis j'ai fait mieux :

listing des disques (physiques et amovibles)
choix du dossier/ disque donc (de préf une clé qui ne sert qu'à stocker des mdp)
choix du prog/site
choix du pseudo

génération
copie presse papier pour juste avoir à coller
et enreg sous un txt

avec gestion utf8 avec encode ascii

(ça, juste pour éviter les erreurs d'accents et être bien plus multi portable)

après, à la base, c'était pour des usages personnels, du coup l'interface importait peu, uniquement l'efficacité des mdp générés.


sur le premier code, ça pesait 2k max, en interpretable python 2.7.5

ce qui est pas top c'est que (j'en avais discuté sur un fofo) le random python est très mal fait, bien que très costaud niveau calcul et longueur (et simplicité), mais la seq est très peu modulable...


genre, de base tu fais un random sur int (1-9) tu le lances 20 fois, à coup sûr tu vas retomber 10 fois sur le même gen... avec des améliorations *py par ex, ça devient mieux, bref

on peut pas se caler sur datetime pour être réel en seq

sinon, ça continue de faire ce que je veux, et j'en suis content (et ça me fait perdre du temps inoccupé ^^)

le jour où j'en fais un bien en c, je reviens :)

edit : sinon les regex, c'est vraiment, très utile , genre x.lower or upper case, ça cale tout, après regex en python pour ceux que ça intéresse, Kodos (le soft) marche mal en fait mais une fois compris, c'est redoutable : ex : \d

Ce message a été modifié 1 fois, dernière modification par "PurePowerPlant" (08.02.2014, 04:25)


MégaBoulet

Dropinosaure à ses heures perdues

Messages: 2 584

ID UT2: 99625

  • Envoyer un message privé

7

08. 02. 2014, 07:17

Ah, oui, stockage amovible c'est... un stockage amovible. J'avais pas compris et j'me demande pourquoi du coup ^^'

Bonne continuation du coup :)


Pis p'tit coup de pub si tu veux perdre un peu de temps : http://www.codingame.com/cg/
Tout les 1-2 mois est organisé des concours où il faut écrire des algorithmes répondants aux question de l'exercice. Les sujets sont sympa avec une "histoire" pour situer le problème et il est possible de voir le code des autres participants quelques heures après la fin du concours (ça m'a aidé à apprendre à coder en java :) ).
Le dernier concours, il fallait faire une IA pour poser le robot Opportunity sur mars. Le sujet est plutôt bien amené, surtout dans l'ordre de difficulté.
Amendil
MégaChef de la confrérie des boulets
Créateur et chef de la confrérie anti-caravane

8

08. 02. 2014, 18:59

sûrement un peu trop complexe pour moi... mais concept intéressant :)

je suis toujours, même si moins assidu sur :

http://www.newbiecontest.org/index.php


http://www.pythonchallenge.com/


mais c'est plus un jeu qu'autre chose :)

9

22. 02. 2014, 19:48

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#! /usr/bin/python
# -*- coding: utf-8 -*-

import random
import string
import pyperclip
import datetime

today = datetime.date.today()


print u'''Petit script pour un mdp.
.........................................

Vérifier que la clé USB est bien G...
...............\n\n'''

appli = raw_input (u'Entre le nom du programme pour lequel tu souhaites générer un mot de passe\n\n')

nom = raw_input (u'Entre le nom pour lequel tu es loggué\n\n')

choix = raw_input (u'''Choisis un niveau de complexite du mdp :


1- 6 lettres + 2 chiffres
2- 6 lettes en majuscules et minuscules + 2 chiffres
3- 8 lettres et chiffres, majuscules et minuscules
4- 12 lettres, chiffres et caract7res spéciaux avec minuscules et majuscules\n\n''')

def gen() : 
    if choix == '1' :
        li1 = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
        mdp = random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+str(random.randint(0,9))+str(random.randint(0,9))
    
    if choix == '2' :
        li2 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
        mdp = random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+str(random.randint(0,9))+str(random.randint(0,9))
       
    if choix == '3':
        li3 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')
        mdp = random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)

    if choix == '4' :
        liste =('%','$','£','¨','^','*','µ','§','!','ù','/', 'ç','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')
        mdp = random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)
        
    else :
        print u'entre un chiffre parmis les choix proposés'
        gen()

    pyperclip.setcb(mdp)
    spam = pyperclip.getcb()

    fichier = open('G:\MDP\\'  +str(appli)+ ' ' + str(today)+".txt", "w")
    fichier.write(mdp)
    fichier.close()

gen()
print (u"""Le mot de passe pour %s au nom de %s a été généré et copié dans le presse papier.\n
          Il est enregistré dans G:\\MDP \n
          Copie le mdp où tu le souhaites en faisant un coller.""") %(appli,nom)





raw_input('presse une touche pour quitter')



juste plus agréable à l’œil, et faut (car c'est mon cas, que la clé dédiée au stockage des mdp, soit en lettre G)

10

22. 02. 2014, 19:50

et une version pour générer à la volée, mais sans stockage :

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#! /usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import random
import string
import pyperclip


print 'petit script pour un mdp généré sans stockage en doc texte.\n\n\n'


choix = raw_input ('''choisis un niveau de complexite du mdp:


1- 6 lettres + 2 chiffres
2- 6 lettes en majuscules et minuscules + 2 chiffres
3- 8 lettres et chiffres, majuscules et minuscules
4- 12 lettres, chiffres et caracteres speciaux avec minuscules et majuscules\n\n''')

if choix == '1' :
    li1 = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')
    mdp = random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+random.choice(li1)+str(random.randint(0,9))+str(random.randint(0,9))
    
if choix == '2' :
    li2 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
    mdp = random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+random.choice(li2)+str(random.randint(0,9))+str(random.randint(0,9))
        
if choix == '3':
    li3 = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')  
    mdp = random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)+random.choice(li3)
    
if choix == '4' :
    liste =('%','$','£','¨','^','*','µ','§','!','ù','/', 'ç','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0')
    mdp = random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+random.choice(liste)+str(random.randint(0,9))+str(random.randint(0,9))

pyperclip.setcb(mdp)
spam = pyperclip.getcb()

        


print ("""le mot de passe  a été généré et copié dans le presse papier.\n
          
          Copie le mdp où tu le souhaites en faisant un coller.""")




raw_input('presse une touche pour continuer')


toujours du temps à perdre...

11

26. 02. 2014, 09:35

et est ce que tu aurais un générateur de pdp?
UT1 ID : 35371


12

26. 02. 2014, 13:57

ouais :


pdp =0
while True :
pdp +=1
print 'j'ai %s pdp' %(pdp)


ce qui va boucler jusqu'à la fin de ton pc, mais avec, t'en auras plein les yeux des pdp :D