Per le chiavi CD di vecchia scuola, si trattava solo di creare un algoritmo per cui le chiavi CD (che potrebbero essere qualsiasi stringa) sono facili da generare e facili da verificare, ma il rapporto tra chiavi CD valide e CD non valide -keys è così piccolo che è improbabile che indovinare casualmente le chiavi del CD ne dia una valida.
MODO SCORRETTO PER FARLO:
Starcraft e Half-life hanno entrambi utilizzato lo stesso checksum, dove la 13a cifra ha verificato le prime 12. Quindi, puoi inserire qualsiasi cosa per le prime 12 cifre e indovinare la 13 (ci sono solo 10 possibilità), portando al famigerato1234-56789-1234
L'algoritmo per la verifica è pubblico e assomiglia a questo:
x = 3;
for(int i = 0; i < 12; i++)
{
x += (2 * x) ^ digit[i];
}
lastDigit = x % 10;
MODO CORRETTO PER FARLO
Windows XP prende molte informazioni, le crittografa e mette la codifica lettera / numero su un adesivo. Ciò ha consentito a MS di verificare la chiave e ottenere contemporaneamente il tipo di prodotto (Home, Professional, ecc.). Inoltre, richiede l'attivazione online.
L'algoritmo completo è piuttosto complesso, ma ben delineato in questo documento (completamente legale!), Pubblicato in Germania.
Ovviamente, qualunque cosa tu faccia, a meno che tu non stia offrendo un servizio online (come World of Warcraft ), qualsiasi tipo di protezione dalla copia è solo una bancarella: sfortunatamente, se si tratta di un valore che vale la pena, qualcuno romperà (o almeno eluderà ) l'algoritmo chiave CD e tutte le altre protezioni del copyright.
MODO REAL CORRETTO PER FARLO:
Per i servizi online, la vita è un po 'più semplice, poiché anche con il file binario devi autenticarti con i loro server per utilizzarlo (ad es. Avere un account WoW). L'algoritmo chiave CD di World of Warcraft - utilizzato, ad esempio, per l'acquisto di carte playtime - probabilmente ha questo aspetto:
- Genera un numero casuale molto grande crittograficamente sicuro.
- Conservalo nel nostro database e stampalo sulla scheda.
Quindi, quando qualcuno inserisce un numero di carta del tempo di gioco, controlla se si trova nel database e, se lo è, associa quel numero all'utente corrente in modo che non possa mai essere riutilizzato.
Per i servizi online, non vi è alcun motivo per non utilizzare il suddetto schema; l'utilizzo di qualsiasi altra cosa può causare problemi .