Revolt Posted July 3, 2006 at 01:49 PM Report #35958 Posted July 3, 2006 at 01:49 PM 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): 👍 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 👍 Revolt Website Antigo Nick: Pauzinhos
UnKnowN Posted July 3, 2006 at 01:55 PM Report #35960 Posted July 3, 2006 at 01:55 PM 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 👍 Fica Bem e Continua que estás lá 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now