OK - per prima cosa sembra strano che tu stia codificando un "user_id" (che suona come un nome utente) che io considererei un dato relativamente pubblico - e non una password o qualcosa di simile segreto - ma la domanda riguarda davvero la crittografia, quindi sto divagando ...
"Abbastanza strong" per ogni algoritmo di crittografia è valutato per quanto tempo occorrerà per decrittografare il testo senza la chiave (presumendo che tu abbia nascosto la tua chiave segreta in modo positivo). Nessun algoritmo è "perfetto" tranne il classico One Time Pad - che è un buon esempio accademico, ma non è così utilizzabile nel 99% dei casi, poiché richiede lo stesso spazio chiave della dimensione dei dati crittografati, e quindi genererai costantemente e la memorizzazione di una nuova chiave - che solleva i suoi problemi di sicurezza.
Quindi .. qualsiasi algoritmo realistico è considerato "abbastanza strong" se ci vorrà più tempo per decodificare il materiale senza la chiave di quanto valga l'informazione. Quindi, se l'informazione è il mio programma per il pranzo di domani, è probabile che il mio algoritmo di crittografia debba solo ritardare un attaccante 24 ore entro la quale l'evento sarà finito e non sarebbe importante perché non riesci a trovarmi c'è più ... ma può importare per anni, se il mio pranzo fosse un evento storico o qualcosa del genere.
Quindi i fattori del calcolo del cracking della crittografia includono:
- quali sono i punti deboli dell'algoritmo - alcuni algoritmi possono avere set di chiavi deboli che sono più facili da decifrare, altri possono provare di aggiungere poco valore (alcune forme di DES)
-
qual è la dimensione dello spazio della chiave - se tutte le chiavi sono ugualmente sicure, allora il modo più ovvio per decifrare l'algoritmo è provare ogni possibile chiave della dimensione specificata - quante chiavi è un fattore di dimensioni della memoria e la natura di come vengono scelte le chiavi (ad esempio, i numeri primi sono utilizzati in crittografia asimmetrica)
-
quanto è difficile testare una decrittazione: quanto ci vorrà per provare un test con una determinata scelta di chiavi?
Quindi ... in un semplice algoritmo, il tempo di crack può essere:
# of keys in key space X time to test a key
Di solito viene calcolato su quante risorse puoi ragionevolmente aspettarti da un hacker? Una piccola organizzazione può avere 10-50 macchine. Uno stato nazionale può avere milioni. Qual è la natura della minaccia: quanta potenza di calcolo possono ragionevolmente avere? Non si presuppone necessariamente che sia limitato dal loro potere d'acquisto in Best Buy - se sono tecnicamente sofisticati, hanno una botnet di software dannoso in maniera massiccia parallela su macchine innocenti che effettuano il calcolo.