Digamos que quiero hacer un hash de algunos datos, usando SHA256, para probar que sé algo. Tal vez sea mi identificación secreta para algo.
En el real de las contraseñas que hemos movido del hashing - > hash + sal - > problemas difíciles de la CPU - > cpu + problemas difíciles de memoria. Sin embargo, la razón principal por la que hicimos todo esto es porque las contraseñas son (en el mundo real) muy bajas en entropía, ya que las personas usan "123456" como contraseña. Dado que los sitios web son pirateados todo el tiempo, hemos empezado a tratar de proteger estas contraseñas de baja entropía para que no sean crackeadas por la fuerza bruta.
Sin embargo, hay muchos otros casos en los que la entrada no es tan "mala". Digamos que, en cambio, quiero copiar mi ID secreta de sincronización de bittorrent, mi ID de billetera de bitcoin o cualquier otro tipo de identificación secreta. ¿No es suficiente una sola ronda de SHA256 aquí y en el futuro previsible? Incluso con la NSA construyendo el grupo de ASIC más grande del mundo para el SHA256 de fuerza bruta.
He visto gente que usa algoritmos como bcrypt / scrypt en muchos otros contextos que contraseñas, y por supuesto no me duele, pero ¿hay alguna razón por la que un solo hash de SHA no sea lo suficientemente bueno? (Suponiendo que sé que mi entrada tiene suficiente entropía)