Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [delphi] algoritmo di protezione

    ciao a tutti!
    è da un bel po' che non posto qui, dato che non mi è più capitata l'occasione, ma ora ho un nuovo problema.

    ho creato un programma al quale dovrei aggiungere un meccanismo di protezione il quale però non richiede un seriale in base ad un nome utente, bensì richiede soltanto il seriale.
    questo codice seriale però non deve essere unico, ma ce ne devono essere tanti (il seriale deve essere di 5 cifre per 4 caselle, con cifre alfanumeriche), da assegnare ognuno ad una persona. questi seriali, poi, per verificarne la correttezza, attraverso un algoritmo devono risalire tutti ad un numero.
    quindi, ricapitolando, da un numero mi deve essere possibile risalire a dei seriali.
    il mio problema è che non ho esperienza in questo campo quindi non so proprio da dove cominciare...

    grazie mille

  2. #2
    Non è chiara la richiesta. In che modo vuoi assegnare un seriale ad una persona visto che affermi "non richiede un seriale in base ad un nome utente, bensì richiede soltanto il seriale".

    questi seriali, poi, per verificarne la correttezza, attraverso un algoritmo devono risalire tutti ad un numero.
    Cosa significa questa frase?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3

  4. #4
    tenete presente quei giochi che ti richiedono un codice seriale per installarsi? non ce n'è solo uno che viene dato a tutti, bensì ognuno ha il suo codice che è diverso da un'altro che ha un'altra persona con lo stesso gioco.
    io vorrei fare la stessa cosa, e i codici che vengono generati li vorrei far partire da un numero, quindi con un numero si generano i seriali aci oci uci ..., con un'altro i codici oca uca aca ... ecc. capito?

  5. #5
    Di solito quei codici non sono assegnati dallo sviluppatore, ma vengono generati a partire dall'hardware dell'utente... Se non fossi interessato a questo meccanismo "standard" dovresti precisare chi genera i numeri univoci.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  6. #6
    Un semplicissimo seriale, potrebbe essere:
    codice:
    //pseudocodice
    write 'Inserisci seriale di 5 caratteri'
    
    sum := 0
    
    for i=0 to 4
       sum := sum + carattere_in_input()
    
    if sum == 1024 then
    valido
    else
    non valido
    Qui i sono validi solo i seriali inseriti, la cui somma delle cifre da 1024.
    Ovviamente, è troppo semplice, e con un po' di reverse engineering lo scoprono subito

  7. #7
    ok ho capito il concetto!
    ora un'ultima richiesta, come posso fare per generare le chiavi?
    dovrei fare una serie di for? ma non sarebbe troppo complicato?
    oppure dovrei usare numeri casuali?

    grazie mille!

  8. #8
    Vediamo se ho capito cosa vuoi fare....

    Tu fornisci in ingresso ad un programma scritto da te il numero 1 e lui ti genera il seriale (lo scrivo a caso, ovviamente tu vuoi implementare un algoritmo che passi dal numero al seriale) 1419-A4B0, se fornisci in ingresso 2 l'algoritmo ti genera 21C5-76E2 e così via... Giusto?

    Il software dovrà poi verificare la correttezza del seriale in base a determinate condizioni (potresti modificare per esempio l'algoritmo di controllo dei codici ISBN).

    Se ho capito bene resta da capire in che modo si assegnano i numeri 1,2,...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  9. #9
    beh più o meno hai capito.
    io fornisco in ingresso al programma il numero 555 e lui mi genera la serie di seriali (scusate il gioco di parole) per es. F5F, A5A, GfG ecc. e se gli do 666 lui mi genera la serie UAU, EUE, IUI, ecc.
    quindi non ci deve essere un seriale per numero, ma più seriali (abbastanza da coprire 10000 e più persone, ma questo poi è dato dal fatto che io voglio usare 4 numeri)
    in parole povere, io da un numero voglio generare tanti seriali
    per farti capire meglio ti spiego cosa sto facendo:
    sto creando un programma di protezione giochi che fa inserire all'utente quattro numeri a caso e questi quattro numeri gli serviranno per generare i seriali che devono essere univoci, cioè se un'altra persona inserisce numeri differenti non ci devono essere seriali uguali, e questi seriali andranno ad essere applicati sui giochi e chi compra i giochi avrà il proprio seriale che varrà solo per lui.
    spero hai capito

  10. #10
    spero hai capito
    Mica tanto... Più che altro perché non capisco né i vantaggi né le finalità di una soluzione del genere.

    Perché l'utente dovrebbe inserire 4 numeri a caso? Solitamente l'activation key viene generata partendo da uno dei seguenti elementi:

    - Codice generato in funzione dell'hardware dell'utente
    - Dati anagrafici dell'utente
    - Un codice univoco creato tramite la connessione ad un server Internet

    Quindi non mi è chiaro perché da un numero dovresti generare tanti seriali: l'utente non dovrebbe poter scegliere dei numeri casuali.

    Se ti interessa l'univocità del seriale la tua soluzione non è neanche lontanamente ottimale, anche perché se da una parte la teoria delle funzioni unidirezionali è ben nota dall'altra esistono molti studi sulle collisioni dei codici di hashing. In altri termini non ha senso associare allo stesso numero seriali diversi, soprattutto se l'obiettivo è quello di creare un meccanismo di protezione non banale.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.