Ejecutar unos cuantos miles de iteraciones o agregar una sal muy larga no es necesariamente la mejor manera de hacer que un hash se ejecute lentamente, pero es la más obvia (más fácil).
La intención es, ante todo, frenar los ataques masivamente paralelos . Un atacante no podrá forzar su hash en un tiempo razonable en una sola CPU. Utilizará una botnet o una máquina con varias GPU (o ambas).
Ejecutar el mismo hash mil veces no es precisamente lo más sabio, ya que es fácil ejecutar esta tarea en paralelo, y principalmente enfatiza la ALU, ambas son coincidencias perfectas para el cálculo de GPU. Por otro lado, el impacto en su CPU puede ser muy notable (dependiendo de la cantidad de iteraciones que realice).
Idealmente, un hash lento implicaría operaciones que dificulten la paralelización y que utilicen ancho de banda además de ALU sin formato, como requerir y tocar cantidades sustanciales de RAM (esto también limita la cantidad de instancias que pueden ejecutarse en un zombie sin ser necesario). detectado) o que requieren operaciones que son costosas en las GPU (por ejemplo, escrituras de acceso aleatorio).
Por supuesto, esto no es exactamente tan trivial como lograr simplemente ejecutando un hash de miles de iteraciones, por lo que uno suele recurrir a eso.