Creo que tienes dos opciones:
- Realice la seguridad de contraseña adecuada y envíe hashes para que el sistema local los verifique
- Use un "PIN" en lugar de una contraseña para minimizar el daño si se roban las credenciales.
Para resumir lo que está preguntando, el problema obvio es que el hecho de tener que enviar las credenciales de alguna forma aumenta el riesgo de robo de las credenciales. Dado que la reutilización de contraseñas es un problema que nunca termina, pasar las contraseñas de las personas para la validación local es un peligro para sus usuarios más que cualquier otra cosa.
El cifrado en realidad no ayuda mucho (o quizás dependiendo de tus preocupaciones de seguridad) porque independientemente de en qué aros hagas que la aplicación salte, la aplicación aún tiene que poder verificar las contraseñas sin conexión, lo que significa que hay una forma de recuperar las contraseñas de texto sin formato.
Hash
Probablemente, la forma más segura de usar contraseñas reales es seguir el protocolo estándar y usar un algoritmo de hashing de contraseñas seguras. Obviamente, por lo tanto, no quiere un algoritmo rápido, pero no puedo imaginar que el teléfono sea mucho más lento en el hash para causar problemas dolorosos en la interfaz de usuario. Obviamente, tendrá que reproducir su algoritmo de hash en su teléfono, probablemente no será un gran problema para los algoritmos de hash estándar.
El hash proporciona una capa básica de protección contra el robo de contraseñas en tránsito o desde el teléfono. Obviamente, aunque no protegerá las contraseñas débiles contra los forzados brutos. Sin embargo, si estas contraseñas no están conectadas a los detalles del usuario de otra manera (por ejemplo, las direcciones de correo electrónico), entonces ese es un problema menor: todas las contraseñas que utilicé podrían salpicarse públicamente en Internet, pero no importaría si mi dirección de correo electrónico no está conectado a ellos. Si puede asegurarse de que las contraseñas no estén conectadas de ninguna manera a cualquier información personal, entonces hay menos preocupaciones.
PINs
La otra opción sería usar un PIN, como usted menciona, y convertirlo definitivamente en un PIN - solo números. Esto evitará que las personas reutilicen su contraseña. Sin embargo, no evitará que las personas reutilicen su número de PIN de cajero automático, por lo que aún mantendré estas credenciales lejos de cualquier información personal.
En resumen, si todo lo que tiene es una contraseña o PIN, entonces ya no es realmente una contraseña, es solo un identificador único asignado a un usuario. Es mucho menos peligroso que lo hayan robado (o al menos, solo es peligroso para su aplicación y lo que esa identificación única le permite a un usuario malintencionado). Por lo tanto, la mejor opción es realmente para asegurarse de que estas contraseñas locales nunca estén conectadas (o conectables) a la información real del usuario.