Devo cambiare la mia licenza risultato chiave di uscita MD5 pura ad un comune “XXXX-YYYY-ZZZZ” tipo di codice?

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

Domanda

Sto creando un sistema semplice chiave di licenza di "mantenere le persone oneste onesti". Non mi interessa la crittografia su particolarmente rigorosi.

Se si arriva a infastidito con le limitazioni demo, vanno al mio sito web di registrazione, paga, e mi danno la loro e-mail. Io do loro una chiave di licenza.

mi tengo le cose davvero semplice, così:

license_key = md5(email + "Salt_String");

Ho PHP e C # funzioni eseguite lo stesso algoritmo e ottenere la stessa chiave.

Il problema è che l'uscita di queste funzioni è una stringa di 32 caratteri come:

A69761CF99316358D04771C5ECFCCDC5

che è potenzialmente difficile da ricordare / tipo. Sì, so di copia / incolla, ma voglio renderlo veramente facile per tutti i clienti di pagare per sbloccare il software.

dovrebbe in qualche modo convertire questo lungo stringa in qualcosa di più breve?

Diciamo che io uso solo le prime 6 cifre, in modo da: A69761

Ci sono ovviamente modo collisioni più crittografici a questo, ma si è importa affatto nell'uso pratico?

Tutte le altre idee per rendere la cosa più leggibile / tipizzabile umana?

È stato utile?

Soluzione

Per lasciato 6-10 simboli sarà sufficiente - l'utente in ogni caso non sarà in grado di indovinare il codice, e sarebbe facile da digitare. Anche buona idea sarebbe quella di registrare ogni licenza sul server, in modo che si sarà in grado di verificare che l'utente è davvero onesto, e non ha dato una chiave di licenza a un'altra persona.

Altri suggerimenti

Nella mia esperienza, che chiede all'utente di digitare o copiare / incollare un codice di 30 caratteri in effetti porta a clienti frustrati. Non è che è così difficile. E 'semplicemente un ostacolo che le persone non si preoccupano per.

La soluzione che ho usato per mia attività è di avere processo separato e download acquistati. Per ottenere la loro copia con licenza, i tipi di clienti nel loro indirizzo di posta elettronica e una breve ID utente sul modulo da scaricare. Entrando solo l'e-mail rinvia automaticamente l'ID utente. Lei non ha chiesto su questo, ma un sistema di cercare automaticamente qualsiasi codice le esigenze del cliente è ancora più importante che avere un sistema semplice. Il sistema scaricare guarda i dettagli dell'utente nel database e serve una SetupSomeProductCustomerName.exe che dispone di una licenza per l'utente incorporato in esso. Questa installazione installa copia con licenza del cliente senza ulteriori connessioni di identificazione o del server.

Questo sistema ha funzionato molto bene per noi. Il cliente ha solo un file per eseguire il backup e non i numeri di serie a perdere per assicurarsi che essi possono reinstallare il software in futuro.

Detto questo, se si preferisce utilizzare un sistema che utilizza un hash a senso unico, è sufficiente utilizzare un algoritmo che genera un hash più piccolo. Per esempio. CRC-32 risultati in 8 cifre esadecimali.

Non c'è punto del hash essere crittograficamente sicuro. Un cracker semplicemente camminare attraverso il codice, copiare l'intero blocco di codice che muta l'indirizzo e-mail nella chiave di licenza, e incollare che nella loro keygen. Poi si possono generare chiavi di licenza per qualsiasi indirizzo email. Possono fare che, indipendentemente da quanto sia complesso il vostro algoritmo di hash è.

Se si vuole evitare questo, è necessario utilizzare la crittografia a chiave pubblica, che si traduce in chiavi che sono troppo tempo per digitare. Se si va questa strada, potrete sia bisogno di infastidire i clienti con lunghe chiavi incollare o file chiave separati, o utilizzare il sistema di download personalizzato che ho descritto sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top