Algoritmos de Hash: Java vs. GNU


La implementación de Java de SUN provee implementaciones para varios algoritmos de hash como MD5, SHA1, SH?A-256 y SHA-512.

La biblioteca GNU crypto también los provee. Me puse a probar cuál implementación es más rápida.

Datos de la prueba:

  • OS: Windows XP Profesional SP2
  • Java: Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
  • Parámetros: -Xms128m -Xmx128m
  • Memoria: 512 MB
  • Tamaño del archivo: 126.664.704 bytes

Probé con varios tamaños de bloque para leer. Los tiempos están en milisegundos. Siempre la última fila es la más rápida y en ese caso siempre Java es más rápido. El % de incremento es de GNU contra Java.

Algoritmo (Tamaño Bloque de lectura) Java GNU Incr. %
MD5 (1M) 1985 2281 14,91%
MD5 (4k) 2188 1922 -12,16%
MD5 (128K) 1906 1984 4,09%
MD5 (256K) 1875 1953 4,16%
MD5 (64K) 1875 1875 0,00%
MD5 (512K) 1844 1938 5,10%
MD5 (8k) 1328 1406 5,87%
MD5 (32K) 1250 1266 1,28%
MD5 (16K) 1250 1438 15,04%
Algoritmo (Tamaño Bloque de lectura) Java GNU Incr. %
SHA1 (1M) 3578 3531 -1,31%
SHA1 (4k) 3328 3719 11,75%
SHA1 (128K) 3297 3578 8,52%
SHA1 (512K) 3296 3547 7,62%
SHA1 (256K) 3282 3593 9,48%
SHA1 (64K) 3219 3500 8,73%
SHA1 (8k) 2891 3250 12,42%
SHA1 (32K) 2703 3015 11,54%
SHA1 (16K) 2656 2937 10,58%
Algoritmo (Tamaño Bloque de lectura) Java GNU Incr. %
SHA-256 (256K) 4688 4687 -0,02%
SHA-256 (128K) 4688 4671 -0,36%
SHA-256 (512K) 4672 4656 -0,34%
SHA-256 (4k) 4641 4656 0,32%
SHA-256 (64K) 4625 4625 0,00%
SHA-256 (1M) 4672 4609 -1,35%
SHA-256 (8k) 4390 4485 2,16%
SHA-256 (32K) 4063 4062 -0,02%
SHA-256 (16K) 4000 4016 0,40%
Algoritmo (Tamaño Bloque de lectura) Java GNU Incr. %
SHA-512 (8k) 17343 19750 13,88%
SHA-512 (4k) 18031 17250 -4,33%
SHA-512 (256K) 15578 16047 3,01%
SHA-512 (128K) 15563 16031 3,01%
SHA-512 (512K) 15422 17828 15,60%
SHA-512 (1M) 15407 15984 3,75%
SHA-512 (64K) 15375 15985 3,97%
SHA-512 (16K) 14906 16047 7,65%
SHA-512 (32K) 14844 15672 5,58%

Voy a probar lo mismo el otras plataformas a ver qué resultados obtengo.

Aquí puse unos gráficos para mostrar esos mismos números.

Anuncios

Un pensamiento en “Algoritmos de Hash: Java vs. GNU

  1. Pingback: jHashCalc 1.2 « Omnium potentior est sapientia

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s