> For the complete documentation index, see [llms.txt](https://cryptography.mrw0l05zyn.cl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cryptography.mrw0l05zyn.cl/hashing/salt.md).

# Salt

## Descripción

Un salt es una cadena única generada aleatoriamente que se agrega a cada contraseña como parte del proceso de hashing. Como el salt es único para cada usuario, un atacante tiene que descifrar hashes uno a la vez utilizando el salt respectivo en lugar de calcular un hash una vez y compararlo con cada hash almacenado. Esto hace que descifrar grandes cantidades de hashes sea significativamente más difícil, ya que el tiempo requerido crece en proporción directa a la cantidad de hashes.&#x20;

El salting también permite protegerse contra atacantes que utilicen hashes previamente calculados, como tablas arcoíris (rainbow table) o búsquedas basadas en bases de datos. Además, el salting hace que sea imposible determinar si dos usuarios tienen la misma contraseña sin descifrar los hashes, ya que los diferentes salts darán como resultado hashes diferentes incluso si las contraseñas son las mismas.

Ejemplo de contraseña hasheada sin utilizar salt.

| Descripción | Usuario 1 | Usuario 2 |
| ----------- | :-------: | :-------: |
| Password    |   123456  |   123456  |
| Salt        |     -     |     -     |
| Hash        |  e10adc39 |  e10adc39 |

Ejemplo de contraseña hasheada utilizando salt.

| Descripción | Usuario 1 | Usuario 2 |
| ----------- | :-------: | :-------: |
| Password    |   123456  |   123456  |
| Salt        |    abcd   |    efgh   |
| Hash        |  bc9b5718 |  6bfb3131 |
