He estado investigando sobre el hashing / salado de contraseñas. Tengo entendido que la sal no necesita ser secreta. Pero no he leído nada sobre el hash que necesita ser secreto.
¿Qué tan oculto debe ser el hash real?
Diga que tengo esta sencilla tabla de base de datos:
Usuario
- nombre de usuario
- sal
- hash
Escenario
Tengo una base de datos en línea, bien asegurada / oculta. Puedo almacenar la sal y el hash sin ningún cifrado adicional, etc. Pero, ¿qué ocurre si ciertos usuarios de esta base de datos se almacenan en una base de datos local de SQLite de Android para el acceso sin conexión? La tabla tiene el mismo aspecto, pero ahora la sal y el hash solo están protegidos por un dispositivo no rooteado ( enlace ). La base de datos real de SQLite se puede leer fácilmente si alguien hizo una copia del archivo oculto. ¿Sigue siendo seguro almacenar la sal / hash del usuario en esta base de datos SQLite tal como está (cada usuario tiene una sal diferente)?