Mir ist nicht ganz klar warum du das Passwort auf dem Cient verschlüsselt (statt gehasht) speicherst.
Überhaupt könntest du darauf verzichten:
Nachdem sich der Benutzer auf dem Server angemeldet hat, generierst du einen komplett zufälligen Zugriffsschlüssel. (oder wie du es nennen möchtest)
Ein Zugriffsschlüssel ist genau einem Benutzer und einer Anwendung zugeordnet. Der Benutzer kopiert diesen jetzt in den Client.
Der Client meldet sich mit Username, Passwort-Hash (?) und Zugriffsschlüssel an und bekommt damit (falls alles gültig ist) Zugriff.
So (oder so ähnlich) läuft das ja auch bei Twitter oder Facebook, vll. kannst du dir das Prinzip abgucken