Como han mencionado otros muchachos aquí presentes, MD5 no es un algoritmo simétrico o asimétrico.
En su lugar, pertenece a una rama diferente de la criptografía. Es uno de los algoritmos hash más pequeños disponibles en el marco .Net. A solo 16bytes para sus keysizes, que deberían ser 128 bit. Algo con lo que aprendes tu pan y mantequilla.
Así que sí es mayor que 64 bits, que tiene solo 8 bytes de tamaño.
El tamaño de clave máximo que utilizan los symm 'enc' algs comunes es de 256 bits (administrado por Rijndael).
Si desea buscar tamaños de claves mayores que eso, entonces puede utilizar el RC2 symm 'enc' algs que admite tamaños de clave variable. Algo con lo que puedes experimentar?
Si quieres más de 1024 bits, entonces necesitas mirar Asymm 'Enc' Algs como la clase RSACryptoServiceProvider que admite tamaños de clave de hasta 16K en Bits, ¿no?
Si quiere usar contraseñas, entonces necesita usar Keyred Hashing Algs, como cualquier cosa HMAC ', deberían ser Keyed Hashing Algorithms o MacTripleDes. Todos estos utilizan claves secretas para encriptar el hash que se genera a partir de los datos que proporciona. Las claves se crean utilizando contraseñas y valores de sal a través de la clase RFC2898DerivesBytes. < - No olvide que RC2, Rijndael, AES, DES y todos pueden configurarse para usar contraseñas para ayudar a derivar las claves secretas. En caso de que esté pensando que la frase de apertura de este párrafo es un poco engañosa. Así que agregué esto solo para estar seguro de que el hashing no es lo que necesita en conjunto.
* RECUERDE QUE HAY JERARQUÍAS DE HERENCIA ÚNICAS EN .net Cryptography NameSpace. Entonces, MD5 es la clase abstracta de base de la cual se derivan todas las clases derivadas de MD5. .Net proporciona una de esas clases derivadas que se llama clase MD5CryptoServiceProvider. Que es esencialmente una clase contenedora gestionada que hace que la llamada a las ventanas no se administre Crypto-Libraries API. MD5 es conocido en los libros de texto oficiales de MS bajo el término general como Algoritmo hashing no-clave. *
Hay muchas opciones disponibles para usted.
:) ¡Disfrútalo!
Hola Peter: ¿Esto significa que mi aplicación no "contiene cifrado"? – PF1
Estrictamente hablando, no. Usar MD5 o cualquier otra función hash para que la contraseña real no se almacene a veces se conoce como "encriptación unidireccional", aunque el uso del término encriptación es un nombre inapropiado: (Obligatorio enlace de Wikipedia: http: //en.wikipedia .org/wiki/One-way_encryption) – Peter
Sé que esto es tarde, pero solo para agregar ... En lugar de usar SHA-1 o SHA-2, también podría intentar salar un hash o incluso usar tanto MD5 como SHA -1. –