Créer des numéros de licences

pixmanpixman Membre
14:42 modifié dans API AppKit #1
Bonjour,
Je me suis codé quelques petits utilitaires que je souhaiterais distribuer, et une petite protection s'impose.

Je souhaite donc créer et vérifier des numéros de licence.

A priori c'est un sujet peu abordé car je trouve peu de choses a ce sujet.

J'ai commencé à  lire des articles sur les clefs symétriques ( pas conseillé ) et les clefs asymétriques ( plutôt pas mal ), j'avoue que ce n'est pas simple.
J'ai compris qu'il fallait utiliser plusieurs systèmes de vérifications.
J'ai aussi compris qu'il fallait éviter de tout faire passer par une seule fonction qui dirait (Ok la clef est valide) car a ce moment là  c'est cette fonction qui sera cracké pour toujour dire OK;

Bien sur je ne m'attend pas à  trouver un code tout fait car j'ai l'impression que chacun garde sa petite cuisine interne. Et ça se comprend :-)

Mais existe t'il des pistes à  suivre pour créer un système de création et de vérification de clefs ?

Merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    14:42 modifié #2
    J'ai déjà  vu utilisé flexLM (qui je crois maintenant s'appelle FlexNet), qui est un système de licence tout fait, en gros c'est une lib que tu intègres à  ton appli, tu fais appel aux méthodes de vérification de la licence où tu veux dans ton code et il se charge du reste. Il fonctionne donc avec des fichiers de licence ensuite.
    Après je te cite ça parce que je l'ai déjà  vu, ce n'est pas forcément la meilleure des solutions je n'ai pas beaucoup d'autres éléments pour comparer.
  • devulderdevulder Membre
    14:42 modifié #3
    Bonjour,

    Pour information, tu as le framework AquaticPrime qui est open source.

    Voir ici

  • CéroceCéroce Membre, Modérateur
    14:42 modifié #4
    C'est un long sujet, dont nous avons déjà  parlé.

    J'utilise AquaticPrime mais je ne peux pas totalement le conseiller. Il a l'avantage d'être gratuit et open-source, mais il souffre de défauts:
    - j'ai dû déboguer les scripts PHP de génération de codes pour les noms de clients comprenant des accents (si besoin, demande-moi les sources en MP). L'auteur est aux abonnés absents.
    - il génère un fichier pour débrider, ce qui n'est pas aussi pratique qu'un code pour les clients.
    - le code source est assez crade. Livrer le tout sous forme de framework est idiot puisque ça permet de pirater en remplaçant le framework dans l'appli par un framework perso.

    J'ai essayé de créer mon propre système de génération de codes, mais ce n'est pas simple. Le gros problème est la longueur des codes; on ne peut décemment pas demander aux utilisateurs de taper plus de quarante chiffres, et encore.
  • CéroceCéroce Membre, Modérateur
    14:42 modifié #5
    dans 1283506442:

    J'ai aussi compris qu'il fallait éviter de tout faire passer par une seule fonction qui dirait (Ok la clef est valide) car a ce moment là  c'est cette fonction qui sera cracké pour toujour dire OK;

    Il faut essayer avec un code invalide généré aléatoirement, et vérifier qu'elle renvoie KO.
  • pixmanpixman Membre
    14:42 modifié #6
    Bonjour, effectivement aquaticPrime semble séduisant.

    Je vais jeter un oeil au code ça m'aidera surement à  confirmer cette solution ou alors à  m'aider à  coder autre chose.

    Concernant l'utilisation sous forme de framework.
    Si j'intègre directement les sources à  mon projet je peux tout compiler en une fois et me passer du framework  :-) ?



  • CéroceCéroce Membre, Modérateur
    14:42 modifié #7
    Oui, il me semble qu'en plus il n'y a qu'un .m et un .h.
  • zoczoc Membre
    14:42 modifié #8
    Même mieux que cela, il y a une version en C pur qui n'utilise du coup aucune classe Objective-C et est  un peu moins facile à  tracer (pas de nom de classes ni de messages dans le binaire).

  • APAP Membre
    14:42 modifié #9
    Il y a cocoaFob http://github.com/glebd/cocoafob sinon qui semble pas mal (mais pas testé)
    D'ailleurs vos conclusions m'intéressent, je ne vais pas tarder à  avoir le même besoin
Connectez-vous ou Inscrivez-vous pour répondre.