• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Revolt

[VB.net] Pass Central

2 mensagens neste tópico

Mais um programa nub para vocês.

Este é o Pass Central e permite criar e guardar passwords que podem ter números, letras ou números e letras.

Ao fazer este programa aprofundei os meus conhecimentos em randoms e arrays (nem por isso mas pronto).

LINK: http://www.fileden.com/files/2006/5/24/34588/Pass%20Central.zip

Code (é capaz de estar uma beca desarrumado mas prontos):  :thumbsup:

Imports System.IO
Public Class Form1
    Dim normal, coded, nome, passstring, local, lista As String
    Dim pass As Long


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Atribui à variável local o valor da directoria onde se encontra o programa e a localização do .txt
        local = My.Computer.FileSystem.CurrentDirectory & "/ghkse.txt"
        'Abre o .txt e mete a informação na textbox
        txtlista.Text = My.Computer.FileSystem.ReadAllText(local)
        coded = txtlista.Text
        'Descodifica as passwords
        normal = Replace(coded, "aa", " ")
        normal = Replace(normal, "5d", ",")
        normal = Replace(normal, "8x", "-")
        normal = Replace(normal, "8j", ".")
        normal = Replace(normal, "2h", ";")
        normal = Replace(normal, "0n", ":")
        normal = Replace(normal, "9l", "?")
        normal = Replace(normal, "7f", "!")
        normal = Replace(normal, "1l", "0")
        normal = Replace(normal, "3x", "9")
        normal = Replace(normal, "6h", "8")
        normal = Replace(normal, "3p", "7")
        normal = Replace(normal, "0b", "6")
        normal = Replace(normal, "1d", "5")
        normal = Replace(normal, "7z", "4")
        normal = Replace(normal, "2v", "3")
        normal = Replace(normal, "9t", "2")
        normal = Replace(normal, "6p", "1")
        normal = Replace(normal, "ej", "z")
        normal = Replace(normal, "sp", "y")
        normal = Replace(normal, "wh", "x")
        normal = Replace(normal, "il", "w")
        normal = Replace(normal, "ir", "v")
        normal = Replace(normal, "of", "u")
        normal = Replace(normal, "qh", "t")
        normal = Replace(normal, "ut", "s")
        normal = Replace(normal, "kx", "r")
        normal = Replace(normal, "yp", "q")
        normal = Replace(normal, "mv", "p")
        normal = Replace(normal, "sn", "o")
        normal = Replace(normal, "ot", "n")
        normal = Replace(normal, "ul", "m")
        normal = Replace(normal, "yn", "l")
        normal = Replace(normal, "cj", "k")
        normal = Replace(normal, "kb", "j")
        normal = Replace(normal, "ad", "i")
        normal = Replace(normal, "gb", "h")
        normal = Replace(normal, "av", "g")
        normal = Replace(normal, "ef", "f")
        normal = Replace(normal, "wz", "e")
        normal = Replace(normal, "cx", "d")
        normal = Replace(normal, "mr", "c")
        normal = Replace(normal, "qd", "b")
        normal = Replace(normal, "gz", "a")

        txtlista.Text = normal
    End Sub

    Private Sub btngen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btngen.Click

        'Declara a variável "digitos" associada ao controlo numeric up and down
        Dim digitos As Integer = Me.nuddig.Value

        'Caso só a check box "número" se encontrar seleccionada cria número aleatório de 12 digitos.
        If Me.chknum.Checked = True And Me.chkletras.Checked = False Then

            Randomize()
            pass = CLng(Int((999999999999 * Rnd()) + 1))
            passstring = CStr(pass)

            'Corta parte da password de modo a que o seu comprimento corresponda à variável digitos
            passstring = Strings.Left(passstring, digitos)
            txtpass.Text = passstring

            'Caso só a check box "letras" se encontrar seleccionada cria 13 nomes de ficheiro aleatórios.
        ElseIf Me.chknum.Checked = False And Me.chkletras.Checked = True Then

            Dim rs(13) As String
            Dim contagem As Integer = 0

            While contagem < 13
                rs(contagem) = Path.GetRandomFileName
                contagem = contagem + 1
            End While

            'Cada array vai conter a letra inicial dos vários nomes de ficheiro gerados
            rs(0) = Strings.Left(rs(0), 1)
            rs(1) = Strings.Left(rs(1), 1)
            rs(2) = Strings.Left(rs(2), 1)
            rs(3) = Strings.Left(rs(3), 1)
            rs(4) = Strings.Left(rs(4), 1)
            rs(5) = Strings.Left(rs(5), 1)
            rs(6) = Strings.Left(rs(6), 1)
            rs(7) = Strings.Left(rs(7), 1)
            rs(8) = Strings.Left(rs(8), 1)
            rs(9) = Strings.Left(rs(9), 1)
            rs(10) = Strings.Left(rs(10), 1)
            rs(11) = Strings.Left(rs(11), 1)
            rs(12) = Strings.Left(rs(12), 1)
            rs(13) = Strings.Left(rs(13), 1)

            'Junta todas as arrays
            passstring = rs(1) & rs(2) & rs(3) & rs(4) & rs(5) & rs(6) & rs(7) & rs(8) & rs(9) & rs(10) & rs(11) & rs(12) & rs(13)

            'Como alguns nomes de ficheiros começam com número, temos que os substituir por letras
            passstring = Replace(passstring, "1", "h")
            passstring = Replace(passstring, "2", "b")
            passstring = Replace(passstring, "3", "n")
            passstring = Replace(passstring, "4", "a")
            passstring = Replace(passstring, "5", "l")
            passstring = Replace(passstring, "6", "z")
            passstring = Replace(passstring, "7", "e")
            passstring = Replace(passstring, "8", "p")
            passstring = Replace(passstring, "9", "s")
            passstring = Replace(passstring, "0", "y")

            'Limitar a password ao nº de digitos
            passstring = Strings.Left(passstring, digitos)
            txtpass.Text = passstring

            'Caso ambas as checkboxes se encontrem seleccionadas, criar 13 nomes de ficheiro aleatórios
        ElseIf Me.chkletras.Checked = True And Me.chknum.Checked = True Then

            Dim rs(13) As String
            Dim contagem As Integer = 0

            While contagem < 13
                rs(contagem) = Path.GetRandomFileName
                contagem = contagem + 1
            End While

            'Atribuir a letra inicial de cada nome a uma array
            rs(0) = Strings.Left(rs(0), 1)
            rs(1) = Strings.Left(rs(1), 1)
            rs(2) = Strings.Left(rs(2), 1)
            rs(3) = Strings.Left(rs(3), 1)
            rs(4) = Strings.Left(rs(4), 1)
            rs(5) = Strings.Left(rs(5), 1)
            rs(6) = Strings.Left(rs(6), 1)
            rs(7) = Strings.Left(rs(7), 1)
            rs(8) = Strings.Left(rs(8), 1)
            rs(9) = Strings.Left(rs(9), 1)
            rs(10) = Strings.Left(rs(10), 1)
            rs(11) = Strings.Left(rs(11), 1)
            rs(12) = Strings.Left(rs(12), 1)
            rs(13) = Strings.Left(rs(13), 1)

            'Juntar as arrays e limitar o tamanho da password
            passstring = rs(1) & rs(2) & rs(3) & rs(4) & rs(5) & rs(6) & rs(7) & rs(8) & rs(9) & rs(10) & rs(11) & rs(12) & rs(13)
            passstring = Strings.Left(passstring, digitos)
            txtpass.Text = passstring

        End If
    End Sub

    Private Sub btnad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnad.Click
        
        'Caso se prima o botão "Adicionar" e a caixa de texto "Nome" se encontrar vazia, mostrar o seguinte aviso:
        If txtnome.Text = "" Then

            MessageBox.Show("Por favor introduza um nome para a sua password", "Introduzir nome", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub

            'Caso se prima o botão "Adicionar" e a caixa de texto "Pass" se encontrar vazia, mostrar o seguinte aviso:
        ElseIf txtpass.Text = "" Then

            MessageBox.Show("Por favor introduza ou gere uma password", "Introduzir password", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub

            'Caso ambas as caixas estejam preenchidas, adiconar o nome e a password à lista de passwords
        Else

            nome = txtnome.Text
            lista = txtlista.Text
            passstring = txtpass.Text
            txtlista.Text = lista & nome & ": " & passstring & ControlChars.NewLine
            normal = txtlista.Text


            'Codifica as passwords
            coded = Replace(normal, "a", "gz")
            coded = Replace(coded, "b", "qd")
            coded = Replace(coded, "c", "mr")
            coded = Replace(coded, "d", "cx")
            coded = Replace(coded, "e", "wz")
            coded = Replace(coded, "f", "ef")
            coded = Replace(coded, "g", "av")
            coded = Replace(coded, "h", "gb")
            coded = Replace(coded, "i", "ad")
            coded = Replace(coded, "j", "kb")
            coded = Replace(coded, "k", "cj")
            coded = Replace(coded, "l", "yn")
            coded = Replace(coded, "m", "ul")
            coded = Replace(coded, "n", "ot")
            coded = Replace(coded, "o", "sn")
            coded = Replace(coded, "p", "mv")
            coded = Replace(coded, "q", "yp")
            coded = Replace(coded, "r", "kx")
            coded = Replace(coded, "s", "ut")
            coded = Replace(coded, "t", "qh")
            coded = Replace(coded, "u", "of")
            coded = Replace(coded, "v", "ir")
            coded = Replace(coded, "w", "il")
            coded = Replace(coded, "x", "wh")
            coded = Replace(coded, "y", "sp")
            coded = Replace(coded, "z", "ej")
            coded = Replace(coded, "1", "6p")
            coded = Replace(coded, "2", "9t")
            coded = Replace(coded, "3", "2v")
            coded = Replace(coded, "4", "7z")
            coded = Replace(coded, "5", "1d")
            coded = Replace(coded, "6", "0b")
            coded = Replace(coded, "7", "3p")
            coded = Replace(coded, "8", "6h")
            coded = Replace(coded, "9", "3x")
            coded = Replace(coded, "0", "1l")
            coded = Replace(coded, "!", "7f")
            coded = Replace(coded, "?", "9l")
            coded = Replace(coded, ":", "0n")
            coded = Replace(coded, ";", "2h")
            coded = Replace(coded, ".", "8j")
            coded = Replace(coded, "-", "8x")
            coded = Replace(coded, ",", "5d")
            coded = Replace(coded, " ", "aa")

            lista = coded

            'Guarda-as no ficheiro .txt
            My.Computer.FileSystem.WriteAllText(local, lista, False)

        End If

    End Sub

    
    
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        'Permite apagar a lista
        If MessageBox.Show("Tem a certeza que quer apagar a lista?" & vbNewLine & "Isto apagará todas as passwords guardadas!", "Apagar Lista?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.Yes Then
            txtlista.Text = String.Empty
            lista = txtlista.Text
            My.Computer.FileSystem.WriteAllText(local, lista, False)
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'Permite apagar a seleccção
        If MessageBox.Show("Tem a certeza que quer apagar a(s) password(s) seleccionada(s)??", "Apagar password(s) seleccionada(s)?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.Yes Then
            txtlista.SelectedText = String.Empty
            lista = txtlista.Text
            My.Computer.FileSystem.WriteAllText(local, lista, False)
        End If
    End Sub

    Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click

        'Fecha o programa
        Close()
    End Sub

    Private Sub AjudaToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AjudaToolStripMenuItem1.Click

        'Abre a janela Ajuda
        Dim ajuda As New Dialog1
        ajuda.ShowDialog()
    End Sub

    Private Sub SobreToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SobreToolStripMenuItem.Click

        'Abrea a janela Sobre
        Dim sobre As New AboutBox1
        sobre.ShowDialog()
    End Sub
End Class

e btw thanks ao Fat por me ter aturado no IRC  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tá girinho mas olha, quando tirei a seta da CheckBox em Números e Letras, não deu para gerar nada como é óbvio, mas podias fazer "saltar" 1 MessageBox a dizer por exemplo que tinhamos de seleccionar pelo menos 1 das Opções :thumbsup:

Fica Bem e Continua que estás lá :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora