Hace más de un año, he creado un pequeño software basado en formularios.
Su propósito, como indica el título, es generación de cadenas aleatorias .
Tiene opciones para combinar numéricos, mayúsculas, mayúsculas y caracteres especiales dentro del conjunto de caracteres ASCII (94 en total). Pronto tendrá soporte para UTF-8 (y se marcará como opcional / experimental, porque algunos sitios web no permiten nada excepto ASCII para las contraseñas).
Utiliza la clase RNGCryptoServiceProvider
y sus métodos ( GetBytes()
y
ToString()
) para producir una salida.
Si seleccionamos todas las opciones (ASCII completo), tenemos 94 caracteres. Especificamos que queremos que nuestra salida tenga 64 caracteres de longitud.
Nuestra fuerza en bits es: 94 ^ 64 o log (base 2, 94) * 64 = 419
EDITAR: Ejemplo: 4Ed(R{MQ_U9pQ#?9k'V2p1bpW+UrEBkebif9w'Qsp>n7i~PF,]DCdV18sqilN(ou
Pregunta 1: ¿Es seguro usar esta salida como una contraseña segura?
Pregunta 2: ¿Hay algo más que deba implementar para mejorar la seguridad?
Lenguaje de programación: C #
IDE: SharpDevelop 4.4
Framework: .NET 4.5