IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Licence]Programme limité dans le temps


Sujet :

Java

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Licence]Programme limité dans le temps
    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.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: Système de licence
    Salut,

    Il y a un autre problème dans ta solution... Il suffit de remplacer le fichier crypté par celui d'origine pour 'casser' la protection (le compteur est remis à son maximum sans avoir à changer la date). Surtout qu'il est très facile d'automatiser cela avant de lancer le programme...


    Je pense que le plus simple serait de sauvegardé dans ta base (ou un fichier) les trois informations suivantes lors de l'installation :
    • La date du jour de l'installation (début de l'évaluation).
    • Le type de la licence.
    • La date de la dernière ouverture de ton application (égal à la date d'installation).


    En les cryptant bien entendus...

    Au démarrage de ton application tu récupères le type de licence. S'il s'agit d'une version d'évaluation :
    • Tu vérifies que la date courante est supérieur à la date d'installation.
    • Tu vérifies que la date courante n'est pas supérieur à la date d'installation + le nombre de jours d'évaluation.
    • Tu vérifies que la date courante est supérieur à la date de dernière ouverture.
    • Tu remplaces la date de dernière ouverture par la date actuelle.


    Cela permet d'empêcher l'utilisateur de changer la date système (la date doit être supérieur à la date d'installation ET à la date de dernière ouverture). Il faut quand même laisser une petite marge d'erreur d'1 ou 2h...


    Par contre comme toutes solutions c'est loin d'être parfait et cela peut encore être contourné...

    a++

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je te remercie pr la réponse. Je vais essayer de créer un truc comme ça en compliquant encore un peu les choses (crypter, zipper, etc...)

    Si tu as d'autres idées... n'héistes pas.

    Merci encore

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/02/2010, 11h03
  2. Réponses: 6
    Dernier message: 31/01/2008, 06h34
  3. Limiter dans le temps un téléchargement
    Par MANU_2 dans le forum Général Conception Web
    Réponses: 13
    Dernier message: 23/01/2008, 18h31
  4. Limiter dans le temps mon code Java
    Par GLDavid dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2007, 09h22
  5. Réponses: 5
    Dernier message: 06/05/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo