Générateur de mots de passe

Description

Cette source permet de générer un mot de passe de manière sure, pour cela, le mot de passe généré contient des minuscules, des majuscules, des chiffres et des caractères spéciaux.

Ce code peut fonctionner soit en l'exécutant sous Windows soit dans internet explorer avec le fichier .html

Source / Exemple :


Option Explicit

Public minuscules   'Les caracteres minuscules autorisés
Public majuscules   'Les caracteres majuscules autorisés
Public chiffres     'Les chiffres autorisés
Public speciaux     'Les caracteres speciaux autorisés

'
'Procedure qui initialise les caracteres autorises
'
Sub init()
	minuscules="abcdefghijklmnopqrstuvwxyz"
	majuscules=UCase(minuscules)
	chiffres="0123456789"
	speciaux="²&é(-è_çà)~#{[|\^@]}=^$ù*,;:!<>š£%µ./§"
End sub

'
'Fonction qui permet de generer un mot de passe de nbChar caracteres
'
Function GenererMp(nbChar)
	Dim i      'compteur de boucle
	Dim pMin   'la probabilite d'avoir une minuscule
	Dim pMaj   'la probabilite d'avoir une majuscule
	Dim pNum   'la probabilite d'avoir un chiffre
	Dim pSpe   'la probabilite d'avoir un caractere special
	Dim total  'le nombre total de caracteres
	Dim res    'le resultat de la fonction
	
	res=""
	total=Len(minuscules)+Len(majuscules)+Len(chiffres)+Len(speciaux)
	pMaj = (Len(majuscules)/total)
	pMin = (Len(minuscules)/total)
	pNum = (Len(chiffres)/total)
	pSpe = (Len(speciaux)/total)
	
	For i=1 To nbChar
		Randomize
		If rnd<pMin Then
			res = res & SelectRandomChar(minuscules)
		ElseIf rnd<pMin+pMaj Then
			res = res & SelectRandomChar(majuscules)
		ElseIf rnd<pMin+pMaj+pNum Then
			res = res & SelectRandomChar(chiffres)
		Else
			res = res & SelectRandomChar(speciaux)
		End If		
	Next
	GenererMp=res
End Function

'
'Fonction qui permet de retourner un caractere au hasard parmi les entrees
'
Function SelectRandomChar(caracteres)
	dim alea 'nombre aleatoire compris entre 0 et la taille de caracteres
	Randomize
	alea = Int(Len(caracteres)*rnd+1)
	SelectRandomChar = Mid(caracteres, alea, 1)
End Function

'
'Procedure qui permet de lancer le programme
'
Sub lanceur()
	On Error Resume Next
	Dim nbChar 'Nombre de caracteres voulus par l'utilisateur
	Dim fin    'Choix final du l'utilisateur
	fin = ""
	init()
	nbChar=InputBox("Quelle est la taille du mot de passe souhaitée ?", "Demande d'information", "8")
	If nbChar = "" Then
		Exit Sub
	End If
	fin=InputBox("Un mot de passe a été généré", "Résultat", GenererMP(nbChar))
	If fin = "" Then
		Call lanceur()
	End If
End Sub

Call lanceur()

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.