Classe para gerar senhas, considerando 3 tipos de senhas: apenas letras, apenas números e letras e números. Bom divertimento!
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: 6: namespace MyLibrary.Util
7: {8: /// <summary>
9: /// Classe de senha
10: /// </summary>
11: public static class PasswordUtil
12: { 13: 14: #region Metodos
15: 16: /// <summary>
17: /// Gera uma nova senha conforme os parametros
18: /// </summary>
19: /// <param name="tipo">Tipo da senha</param>
20: /// <param name="tamanho">Tamanho da senha</param>
21: /// <returns></returns>
22: public static string Generate(TypePassword tipo, byte tamanho)
23: {24: switch (tipo)
25: {26: case TypePassword.Alfanumerico:
27: return GeraSenhaAlfanumerico(tamanho);
28: case TypePassword.Alfa:
29: return GeraSenhaAlfa(tamanho);
30: case TypePassword.Numerico:
31: return GeraSenhaNumerico(tamanho);
32: default:
33: return GeraSenhaAlfanumerico(tamanho);
34: } 35: } 36: 37: /// <summary>
38: /// Gera uma senha com letras e numeros
39: /// </summary>
40: /// <param name="tamanho">Tamanho da senha</param>
41: /// <returns></returns>
42: private static string GeraSenhaAlfanumerico(byte tamanho)
43: {44: var sb = new StringBuilder();
45: var r = new Random();
46: for (byte i = 0; i < tamanho; i++)
47: {48: var c = (char)r.Next(65, 90);
49: var n = r.Next(0, 9); 50: var b = r.Next(-1,1);51: if( Convert.ToBoolean(b))
52: sb.Append(c);53: else
54: sb.Append(n); 55: }56: return sb.ToString();
57: } 58: 59: /// <summary>
60: /// Gera uma senha apenas com letras
61: /// </summary>
62: /// <param name="tamanho">Tamanho da senha</param>
63: /// <returns></returns>
64: private static string GeraSenhaAlfa(byte tamanho)
65: {66: var sb = new StringBuilder();
67: var r = new Random();
68: for (byte i = 0; i < tamanho; i++)
69: { 70: var c = (char)r.Next(65, 90); // Apenas texto
71: sb.Append(c); 72: }73: return sb.ToString();
74: } 75: 76: /// <summary>
77: /// Gera uma senha apenas com numeros
78: /// </summary>
79: /// <param name="tamanho">Tamanho da senha</param>
80: /// <returns></returns>
81: private static string GeraSenhaNumerico(byte tamanho)
82: {83: var sb = new StringBuilder();
84: var r = new Random();
85: for (byte i = 0; i < tamanho; i++)
86: {87: var n = r.Next(0, 9); // Apenas numeros
88: sb.Append(n); 89: }90: return sb.ToString();
91: }92: #endregion
93: } 94: 95: /// <summary>
96: /// Tipo da senha a ser gerada
97: /// </summary>
98: public enum TypePassword
99: { 100: /// <summary>
101: /// Letras e numeros
102: /// </summary>
103: Alfanumerico, 104: 105: /// <summary>
106: /// Apenas letras
107: /// </summary>
108: Alfa, 109: 110: /// <summary>
111: /// Apenas numeros
112: /// </summary>
113: Numerico 114: } 115: }
Nenhum comentário:
Postar um comentário