Je te conseille la chose suivante :
Créer une "seed" (graîne littéralement) avec un algorithme du genre SSHA. Je te laisse voir sur internet comment cela fonctionne en détails.
Le but de cette seed est de créer des clés aléatoires à partir de celle ci. Tu pourras par exemple créer 10 clés qui seront les seules valides lors de l'étape de validation.
L'avantage, c'est que ces clés peuvent être générer depuis ton application, la seule chose que tu leur fourniras sera la clé "seed".
Après, ils pourront l'utiliser autant qu'ils le veulent, car tout le processus d'authentification est intégré dans ton application.
Après, tu peux minifier ton code, c'est aussi efficace, mais en effectuant les deux, il est presque impossible d'utiliser/modifier ton application sans te consulter avant.