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