El propósito de una sal es no para hacer más lento el cálculo del hash, es para evitar que las tablas de arco iris sean útiles. Una sola iteración de SHA512 es manera demasiado rápida para ser útil contra ataques de fuerza bruta.
En una GPU decente, puedes hacer ~ 100M hashes / sec ( nuevo enlace ) con SHA512. Multiplique esto por sistemas con múltiples GPUs. Con un KDF lento, como bcrypt , puede modificar el número de iteraciones para que sea más adecuado. Quiere algo alrededor de ~ 0.3s / hash para un buen margen de seguridad.
Tenga en cuenta que 50 bytes son 400 bits, o un espacio de teclas de 2 ^ 400. Es casi seguro que encuentre una colisión en SHA512 si logra calcular 2 ^ 400 hashes. Sin embargo, el atacante no está tratando de adivinar la sal. Lo que debería preocuparte es que un atacante rompa los hashes cuando ya saben la sal.
La solución es use PBKDF2, bcrypt o scrypt , y < a href="https://security.stackexchange.com/questions/17421/how-to-store-salt"> almacene la sal en texto sin formato en la base de datos.
Actualizar:
Parece que estás intentando implementar tu propio esquema. Por favor, no haga esto. Hay dos reglas de criptografía ampliamente aceptadas:
- La criptografía es difícil.
- No hagas tu propio rollo.
No puedo enfatizar suficientemente lo peligroso que es rodar tus propios esquemas, especialmente cuando tratas con criptografía. Ni el legendario Bruce Schneier se atrevería a escribir su propio criptosistema sin una revisión seria por parte de sus compañeros y meses (si no años) de pruebas y ajustes.
El consejo que te he dado con respecto al hashing es un estándar basado en la revisión por pares y una gran cantidad de pruebas teóricas y prácticas. Intentar aumentarla utilizando hash adicional y otra magia negra es una mala idea, y solo aumentará la superficie de ataque de su aplicación y la creará. un defecto de seguridad potencial. Se adhieren a la norma.