Publicado por: Elzo Brito | 14/05/2008

Criando um gerador de senhas seguras e aleatórias

Olá Pessoal estou eu aqui de volta, antes que vocês perguntem já vou explicando, o post sobre a instalação do ubuntu o pendrive esta por vir, como já hávia dito antes, meu pendrive foi extraviado, então tive que comprar outro e só conseguir fazer isso semana passada, então o post está para sair, já adiantando alguma coisa, no post vai ter a instalação do Ubuntu e do Xubuntu, que é uma coisa muito simples de fazer, mas enquanto o post não fica pronto, vou mostrar para vocês como fazer um gerador de senhas aleatórias em VB.

Vamos começar a por a mão na massa, desenhe um formulário dessa forma:

senha1

Itens do Formulário

  • 2 TextBox
  • 1 CommandButton
  • 1 Label
  • 1 Frame

Antes de começar a programar devemos criar um arquivo em TXT, com todos os caracteres possiveis para o gerenciador se basear, eu criei um arquivo e adicionei as seguintes informações:

ABCDEFGHIJKLMNOPQRSTUVXYWZabcdefghijklmnopqrstuvxyz1234567890!@#$%¨&*()_+{}/?[]\

Então o meu programa pode gerar uma senha com qualquer um desses caracteres, se você quiser inserir ou removes mais caracteres você pode.

Salve o arquivo como SENHAS.TXT

Agora sim vamos programar, abra o FORM CODE e crie as seguintes variáveis e o procedimendo abaixo:

Dim numero As Integer
Dim cases As String
Dim
tamanho As Integer
Dim
caminho As String

Public Sub le_txt()
On Error GoTo semarquivo

fnum = FreeFile
Open App.Path & “\senhas.txt” For Input As #fnum
Do While Not EOF(fnum)
Line Input #fnum, linha
caminho = linha
Loop
Close
#fnum

semarquivo:
If Err.Number = 53 Then
MsgBox “A pasta de lição não foi encontrada no diretório Raiz”, vbCritical, “Gerador”
cases = “A pasta de lição não foi encontrada no diretório Raiz”
End If
End Sub

O procedimento acima faz a procura do arquivo SENHAS.EXE e adiciona o seu conteúdo na variável caminho, agora crie mais dois procediementos.

Public Sub criar()
On Error GoTo semnumero
txtsenha.Text = “”
For i = 1 To txtqnt.Text
Me.alfabeto
Next

semnumero:
If Err.Number = 13 Then
txtqnt = 6
End If
End Sub

Este é o procedimento que vai gerar as senhas.

Public Sub alfabeto()
On Error GoTo num
tamanho = Len(caminho)
numero = Int(Rnd * tamanho)
txtsenha.Text = txtsenha.Text & Mid(caminho, numero, 1)
num:
If Err.Number = 5 Then
numero = Int(Rnd * tamanho)
End If
End Sub

O procedimento acima escolhe aleatoriamente, caracter por caracter que irá conter a senha.

Estamos quase no fim, então vamos lá ainda no FORM CODE vá no Form_load e chame o procedimento LE_TXT, e também chame uma função importantissima para o nosso programa, RANDOMIZE este procedimento faz com que o nosso software gere uma sequência aleatória toda vez que abrirmos ele, não entendeu né??? o problema é o seguinte o visual basic gera uma sequência aleatória para ser usada com o comando RND só que toda vez que iniciamos o programa esta seguencia não muda, e com isso os numeros aleatórios ficam previsiveis, pois sempre será a mesma sequencia aleatória, com o comando RANDOMIZE este problema é resolvido e toda vez que abrimos o programa é gerado uma nova sequencia aleatória.

Private Sub Form_Load()
Randomize
le_txt
End Sub

pronto agora é só chamar o procedimento CRIAR, então dê um click duplo sobre o botão Criar, e digite

Private Sub cmdcriar_Click()
Me.criar
End Sub

 

Bom pessoal é isso aí, dividas????


Deixe uma resposta

Sua resposta:

Categorias