Dois-je changer ma licence Sortie clé de sortie pure md5 à une commune « XXXX-AAAA-ZZZZ » code de type?

StackOverflow https://stackoverflow.com/questions/4666262

Question

Je crée un système simple clé de licence pour « garder les honnêtes gens ». Je ne me soucie pas de la cryptographie à propos particulièrement rigoureux.

S'ils arrivent à fâcher avec les limites de démonstration, ils vont à mon site d'inscription, payer, et me donner leur email. Je leur donne une clé de licence.

Je garde les choses vraiment simples, donc:

license_key = md5(email + "Salt_String");

Je PHP et C # fonctions exécutent le même algorithme et obtenir la même clé.

Le problème est que la sortie de ces fonctions est une chaîne de 32 caractères comme:

A69761CF99316358D04771C5ECFCCDC5

Ce qui est potentiellement difficile de se rappeler / type. Oui, je sais copier / coller, mais je veux qu'il soit vraiment facile pour tous les clients payants pour déverrouiller le logiciel.

Devrais-je convertir en quelque sorte cette longue chaîne en quelque chose de plus court?

Disons que j'utilise seulement les 6 premiers chiffres, donc: A69761

Il y a des collisions de toute évidence de façon plus cryptographiques, mais il sera question tout en pratique?

D'autres idées pour rendre la chose facile à lire / typable plus humain?

Était-ce utile?

La solution

à gauche 6-10 symboles sera suffisant - l'utilisateur de toute façon ne sera pas en mesure de deviner le code, et il serait facile de saisir. Aussi bonne idée serait d'enregistrer chaque licence sur votre serveur, de sorte que vous serez en mesure de vérifier que l'utilisateur est vraiment honnête, et ne donne pas une clé de licence à une autre personne.

Autres conseils

Dans mon expérience, demandant à l'utilisateur de taper ou copier / coller un code de 30 caractères en effet conduit à des clients frustrés. Ce n'est pas qu'il est si difficile. Il est tout simplement un obstacle que les gens ne se soucient pas.

La solution que je l'ai utilisé pour mon d'affaires est d'avoir séparé et téléchargements d'essai achetés. Pour obtenir leur copie sous licence, les types de clients dans leur adresse e-mail et un court ID utilisateur sur le formulaire de téléchargement. Saisie que l'e-mail renvoie automatiquement l'ID utilisateur. Vous n'avez pas demandé à ce sujet, mais un système pour rechercher automatiquement le code que les besoins des clients est encore plus important que d'avoir un système simple. Le système de téléchargement regarde les détails de l'utilisateur dans la base de données et sert une SetupSomeProductCustomerName.exe qui a permis de l'utilisateur intégré en elle. Cette configuration installe copie sous licence du client sans nécessiter de connexions supplémentaires d'identification ou de serveur.

Ce système fonctionne très bien pour nous. Le client n'a qu'un seul fichier à sauvegarder et aucun numéro de série à perdre pour vous assurer qu'ils peuvent réinstaller le logiciel à l'avenir.

Cela dit, si vous préférez utiliser un système à l'aide d'un hachage à sens unique, il suffit d'utiliser un algorithme qui génère un plus petit hachage. Par exemple. CRC-32 résultats à 8 chiffres hexadécimaux.

Il n'y a pas de point dans le hachage étant cryptographiquement sécurisé. Un pirate va simplement se promener dans votre code, copiez le bloc entier de code qui mute l'adresse e-mail dans la clé de licence et le coller dans leur keygen. Ensuite, ils peuvent générer des clés de licence pour toute adresse e-mail. Ils peuvent le faire quelle que soit la complexité de votre algorithme de hachage est.

Si vous voulez éviter Si vous choisissez cette voie, vous aurez soit besoin d'importuner vos clients avec les touches longues, vous devez utiliser le chiffrement à clé publique, dont les résultats dans les clés qui sont beaucoup trop longtemps pour taper. À coller ou fichiers clés séparés, ou utiliser le système de téléchargement personnalisé I décrit ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top