¿Existe algún estándar real para el hash cuando se trabaja con contraseñas de usuario en el desarrollo de software no basado en la web?
Antes, solo he manejado contraseñas en Php, donde hash es imprescindible dada la disponibilidad abierta de la web.
En una aplicación que actúa puramente como una interfaz de una base de datos almacenada localmente, sin interacción con Internet (al menos no en lo que respecta a las contraseñas), ¿cómo se almacenan y manejan las contraseñas? Seguramente no se almacenan como texto simple, ya que parece una idea terrible, independientemente de lo seguros que sean los sistemas. En este momento, lo mejor que tengo es almacenar una contraseña Hashed y un Salt por separado en la base de datos. En mi experiencia, incluso almacenar la sal por separado es una mala práctica.
Tampoco puedo encontrar mucha documentación cuando se trata de prácticas para una solución no basada en la web. Tuve que realizar varias conversiones y manipular la contraseña manualmente para trabajar con el espacio de nombres (system.security.cryptography).
Teniendo en cuenta que no se puede esperar que todos los desarrolladores se preocupen lo suficiente por el esfuerzo, yo esperaba que hubiera una serie de bibliotecas y herramientas para ayudar a que la tarea sea lo más sencilla posible.
Editar: Solo para aclarar, estoy buscando la forma en que estas prácticas cambian (si las hay) para las aplicaciones locales, y si hay un estándar separado a seguir para trabajar en un entorno local.
(Estoy trabajando con C # .NET por cierto si eso cambia algo)