Drak_PT Posted September 19, 2016 at 03:49 PM Report #599004 Posted September 19, 2016 at 03:49 PM Olá amigos poderiam me dar algumas dicas de como posso criar um simples app que gere chaves aleatórias com este formato? "XX1-X2X-3XX", "XX4-X4X-4XX", etc So pretendia gerar com números e letras maiúsculas. Obrigado
Solution apocsantos Posted September 19, 2016 at 04:10 PM Solution Report #599007 Posted September 19, 2016 at 04:10 PM Boa tarde, Existem imensas formas de fazer isso, de forma mais complexa ou mais simples, evitando colisões e padrões ou não evitando. Partindo do principio que queres algo simples e para não estar a colocar aqui umas quantas paginas de código e 3 classes, cá fica um exemplo simples public static char GetLetter() { string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; Random rand = new Random(); int num = rand.Next(0, chars.Length - 1); return chars[num]; } public static char GetDigit() { string chars = "0123456789"; Random rand = new Random(); int num = rand.Next(0, chars.Length - 1); return chars[num]; } private string geraChave() { string key = "" + GetLetter() + GetLetter() + GetDigit() + "-" + GetLetter() + GetDigit() + GetLetter() + "-" + GetDigit() + GetLetter() + GetLetter() + ""; return key; } Como é obvio este exemplo não é nada bom, pois o padrão é estupidamente repetitivo e demasiado fácil de detectar, mas fica apenas para o efeito de exemplo. Não será difícil alterar e evitar a repetição de caracteres. Cordiais cumprimentos, Apocsantos 1 Report "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Drak_PT Posted September 19, 2016 at 04:20 PM Author Report #599008 Posted September 19, 2016 at 04:20 PM Boas amigo, Realmente funciona bem porem ele so muda as letras e números na ordem em que esta o meu exemplo, eu queria algo aleatório tipo "@@@-@@@-@@@", "@@@-@@@-@@@", etc Onde esta o @ gostava que ele gera-se números e letras aleatórias e salva-se num documento de texto "Tipo wordlist" De qualquer forma muito obrigado pela tua ajuda. Comprimentos
ribeiro55 Posted September 19, 2016 at 04:30 PM Report #599009 Posted September 19, 2016 at 04:30 PM Tão simples como acrescentares os números na cadeia, e chamar um único método em vez de distinguires letras e números. Com o exemplo que o apocsantos deixou, esta conclusão deveria ser trivial... basta olhar para o código. 1 Report Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
apocsantos Posted September 19, 2016 at 04:42 PM Report #599010 Posted September 19, 2016 at 04:42 PM Boa tarde, Não encares o facto de deixar a solução, como um habito, pois mais importante do que ter um peixe, é saber pescar. private static Random random = new Random((int)DateTime.Now.Ticks); private string RandomString(int size) { StringBuilder builder = new StringBuilder(); char ch; for (int i = 0; i < size; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); //Oh relógio meu relógio, as horas não deixam de passar! builder.Append(ch); } return builder.ToString(); } private Random domran = new Random(); private int randomNumber = random.Next(0, 10); private void button1_Click(object sender, EventArgs e) { string modrar1 = RandomString(2); string domranNum1 = random.Next(0, 10).ToString(); string modnar2 = RandomString(2); string domranNum2 = random.Next(0, 10).ToString(); string modnar3 = RandomString(2); string domranNum3 = random.Next(0, 10).ToString(); string key = modrar1 + domranNum1 + "-" + modnar2 + domranNum2 + "-" + modnar3 + domranNum3; textBox1.Text = key; } Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Drak_PT Posted September 19, 2016 at 04:51 PM Author Report #599011 Posted September 19, 2016 at 04:51 PM Sim amigo realmente e verdade eu tenho de aprender e explorar... Agradeço a ajuda prestada, muito obrigado.
apocsantos Posted September 19, 2016 at 11:37 PM Report #599016 Posted September 19, 2016 at 11:37 PM Boa noite, Cá fica outra solução baseada na primeira solução: public static char GetLetter() { string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random rand = new Random(); int num = rand.Next(0, chars.Length - 1); return chars[num]; } private string geraChave() { string key = "" + GetLetter() + GetLetter() + GetLetter() + "-" + GetLetter() + GetLetter() + GetLetter() + "-" + GetLetter() + GetLetter() + GetLetter() + ""; return key; } Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
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