Calculadora de probabilidad de colisión de hash

Introduce el tamaño del hash o del identificador aleatorio en bits y cuántos elementos vas a guardar. La calculadora aplica la cota del cumpleaños para dar la probabilidad de al menos una colisión e indica cuántos elementos hacen falta para un 50 %, un 1 % o una entre un millón.

32 para CRC-32, 64 para un hash de 64 bits, 122 para un UUID v4 aleatorio, 128 para MD5, 256 para SHA-256.
Se admiten exponentes: 1e9 son mil millones.
Probabilidad de al menos una colisión2,674 %
Es aproximadamente 1 entre
37,4
Pares repetidos esperados
0,0271
Valores posibles 2ᵇ
1,845e+19
Elementos para un 50 %
5.056.937.541
Elementos para un 1 %
608.926.882
Elementos para una entre un millón
6.074.003

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo usarla

  1. Introduce el tamaño del hash o del identificador aleatorio en bits.
  2. Introduce el número de elementos: archivos, registros, ID. Los números grandes pueden escribirse como 1e9 o 5e12.
  3. Lee la probabilidad de colisión, los pares repetidos esperados y los elementos que llevan al 50 %, al 1 % y a una entre un millón.

Fórmula

Con N = 2ᵇ valores posibles y n elementos:

  • P(colisión) = 1 − exp(−n(n − 1) ÷ 2N), calculada de forma que las probabilidades diminutas conserven sus cifras.
  • Pares esperados = n(n − 1) ÷ 2N; mientras es pequeño, casi coincide con la probabilidad.
  • Elementos para una probabilidad p: n = ½ + √(¼ + 2N·ln(1 ÷ (1 − p))).

Ejemplo resuelto

Un hash de 64 bits para 1.000.000.000 (10⁹) elementos:

  • N = 2⁶⁴ = 1,845e+19 valores posibles.
  • n(n − 1) ÷ 2N ≈ 10¹⁸ ÷ 3,69 × 10¹⁹ = 0,0271 pares esperados.
  • Probabilidad = 1 − e^(−0,0271) = 2,674 %, aproximadamente 1 entre 37,4.
  • El 50 % se alcanza con 5.056.937.541 elementos; el 1 %, con 608.926.882; una entre un millón, con 6.074.003.

Consejos

  • El doble de elementos, cuatro veces el riesgo mientras es pequeño, porque crece con n².
  • Dos bits más duplican los elementos que puedes guardar con el mismo riesgo: cada bit multiplica N por 2 y el n seguro por √2.
  • Los hashes recortados (los 8 primeros caracteres hex de un SHA-256, por ejemplo) tienen solo 4 bits por carácter: 8 caracteres son 32 bits, y las colisiones aparecen tras decenas de miles de elementos.

Preguntas frecuentes

¿Cómo se calcula la probabilidad de colisión?

Con N = 2ᵇ valores igual de probables y n elementos, la probabilidad de que todos sean distintos es aproximadamente exp(−n(n − 1) ÷ 2N), así que la de al menos una colisión es 1 − exp(−n(n − 1) ÷ 2N). Es la paradoja del cumpleaños con N días en lugar de 365.

¿Cuántos elementos hacen falta para un 50 % de colisión?

Unos 1,1774 × √N, más o menos 2^(b/2). Para 32 bits son unos 77.000 elementos, para 64 bits unos 5.100 millones y para 128 bits unos 2,2 × 10^19.

¿Vale para los UUID?

Sí. Un UUID versión 4 aleatorio tiene 122 bits aleatorios, así que escribe 122. Incluso con mil millones de UUID la probabilidad de colisión ronda 10⁻¹⁹. Los ID basados en tiempo, como UUID v7, tienen menos bits aleatorios por milisegundo, y el riesgo depende de cuántos se generan a la vez.

¿Significa que el hash es criptográficamente seguro?

No. La fórmula supone que las salidas se comportan como valores aleatorios. En hashes rotos como MD5 o SHA-1 se pueden fabricar colisiones a propósito, mucho más rápido de lo que indica la cota del cumpleaños.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 7 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.