MD5 es una función hash , no una función de cifrado. Produce una salida de tamaño fijo (128 bits) independientemente del tamaño de entrada. No se pretende que sea reversible. Por lo tanto, no puede compararse con AES: lo que hace MD5, AES no puede hacer, y lo que AES hace, MD5 no puede hacer.
Una situación en la que puede comparar significativamente las velocidades de procesamiento de MD5 y AES es en protocolos donde los mismos datos están encriptados (por ejemplo, con AES) y cubiertos por a Código de autenticación de mensaje como HMAC, que se basa en una función hash (posiblemente MD5). Uno de estos protocolos es SSL / TLS . En ese caso, podemos tratar de ver cuál de los cifrados y MAC utiliza la mayor parte del presupuesto de la CPU. Por lo general, el cifrado es más caro que el hash, que muestran los números que usted da. Tenga en cuenta, sin embargo, que se sabe que MD5 tiene una serie de debilidades. La función hash estándar que se cree que es "tan fuerte" como AES es SHA-256, y la velocidad de procesamiento de SHA-256 no es mucho mejor que la de AES, en la CPU de uso común.
Otra situación es un PRNG . Puede crear un PRNG a partir de un cifrado de bloque (como AES) cifrando los valores sucesivos de un contador (esto se denomina modo CTR). También puede crear un PRNG a partir de una función hash mediante los valores sucesivos de un contador HMAC. En ese caso, esto funciona, para la función hash, en su ancho de banda de salida , no en su ancho de banda de entrada , y requiere el hash de muchos mensajes muy pequeños en lugar de un gran mensaje. Las funciones hash habituales, incluido MD5, se vuelven decepcionantemente lentas cuando se usan de esa manera.
Esto explica por qué definimos cifrados de bloque como el AES, en lugar de usar una función hash de talla única en todas partes.