Ho bisogno di alcuni puntatori o di un esempio pratico su come crittografare un int su un altro int, e una chiave segreta sarebbe necessaria per decodificare il valore.Codice intero simmetrico per la crittografia dei numeri interi
Qualcosa di simile:
encrypt(1, "secret key") == 67123571122
decrypt(67123571122, "secret key") == 1
Questo ragazzo chiede più o meno la stessa domanda: Symmetric Bijective Algorithm for Integers
però me di essere un sistema di crittografia totale "n00b" Vorrei alcuni esempi più pratici, in python, se possibile.
ho capito che ho bisogno di utilizzare una sorta di cifrario a blocchi, ma sono abbastanza perso nella parte su come mantenere il risultato cifrato ancora essere numerico e un po 'breve (forse un lungo, invece di un int)
Qualsiasi puntatori? Grazie
UPDATE- Perché voglio farlo?
Ho un servizio web in cui ogni "oggetto" ottiene un URL, ad es .: example.com/thing/123456/
In questo momento, gli ID sono sequenziali. Voglio nascondere il fatto che sono sequenziali (ID database).
Le cose su quelle pagine non sono "top secret" o qualcosa del genere, ma non dovrebbe essere così facile per qualcuno curiosare in qualche altro oggetto casuale come semplicemente incrementando quell'ID nell'URL.
Quindi con una sorta di crittografia numerica bidirezionale, gli ID URL non saranno affatto sequenziali e ci vorrebbe un po 'di tempo per trovare più di questi oggetti. (Inoltre, le richieste sono limitate)
E l'unica ragione per cui voglio mantenere questo valore numerico invece di una stringa arbitraria è che la modifica è una sostituzione drop-in totale e le cose funzioneranno senza altre modifiche al codice.
Inoltre, non riesco a generare nuovi ID di database casuali. Devo gestire questa crittografia/decrittografia nell'applicazione.
Perché stai facendo questo? Qual è l'obiettivo? È molto pericoloso creare la tua crittografia. Anche cose ingannevolmente semplici come "basta usare la cifratura X" possono avere conseguenze inaspettate sulla sicurezza. –
Buon punto. Ho aggiornato la domanda – adamJLev
[Format Preserving Encryption] (http://en.wikipedia.org/wiki/Format-preserving_encryption) –