Bonjour à tous,
Je suis confronté à un gros problème avec une application (Swing). Je dois assez rapidemment mettre au point un système de licence pour mon application.
Voici ce que j'ai imaginé : lorsque e distribue l'applic, celle ci est accompagnée d'un fichier crypté. Celui-ci contient un nombre de jours. Au fur et à mesure que les jours passent, je décrémente le nombre. Donc dans le code, en résumé, je décrypte le fichier, je récupère la valeur, je décrémente. Seulement voila, pour décrémenter, je me base sur quoi ? Ce que je voulais faire... A chaque connexion à l'applic, je sauve la date de la connexion en DB (qui est embarquée).
Au démarrage : si écart entre la date sauvée en DB et la date courante (System.currentTimeInMillis) est négatif ==> Le petit malin a sans doutes changé la date système pour essayer d'outre-passer la licence.
Si l'écart est positif ==> je décrémente le compteur ds le fichier de ce nombre de jours ==> La date de connexion en DB est mise à jour avec la date courante.
Problème possible : ça m'arride de temps en temps qd je fais des tests, je change la date système de mon ordi (ex: si nous sommes le 3, je mets le 5), j'oublie de la remettre à la date du jour et je lance mon applic. La dernière date de connexion en DB = le 5. Je me rend compte que mon PC n'est pas à la bonne date...je remet au 3 ou 4, impossible d'accéder à mon applic...
En gros, comment gérer cette date système ? N'y a-t-il pas moyen de se baser sur une autre date, sans utiliser aucune connexion aunet ? Date du bios par exemple ?
Bref, je suppose que vous comprenez mon problème. Si vous avez une solution, même toute autre que celle que je propose ci-dessus, ou des articles me permettant de m'aider... je vous en remercie d'avance.
Partager