Come posso crittografare un file usando il mio codice di programmazione?
Sono un principiante, voglio imparare la crittografia.
Come posso crittografare un file usando il mio codice di programmazione?
Sono un principiante, voglio imparare la crittografia.
Ci sono due parti per la mia risposta:
Per il codice di produzione, dovresti MAI utilizzare la tua crittografia personale. SEMPRE utilizza una libreria crittografica testata e revisionata. Se la tua domanda si riferisce al codice di produzione, utilizza una libreria nel tuo linguaggio di programmazione di destinazione. Per alcune librerie per le lingue popolari vedi qui .
Se solo intende imparare da questo, puoi utilizzare alcune informazioni gratuite sulla crittografia dalle seguenti risorse: Cryptography Primer , Un corso di laurea in Crittografia applicata e un corso online sulla crittografia . Probabilmente avrai bisogno di un po 'di esperienza in programmazione, ma questo non è il punto da cui partire se non ne hai. Gli algoritmi di crittografia possono variare in difficoltà di implementazione, quindi ti suggerisco di iniziare con un semplice cifrario e aprirti la strada.
Tuttavia, penso che questa sia una buona domanda per avere una risposta canonica, quindi fornirò una risposta generale per indirizzarti nella giusta direzione, senza dare un codice specifico.
Effettuare correttamente la crittografia è non facile . Significa leggere e imparare molto. Puoi utilizzare la crittografia per sperimentare, ma dovresti non fidarti del tuo codice per fornire sicurezza adeguata. Se si desidera utilizzare la crittografia in un prodotto che deve essere utilizzato da altre persone o anche da aziende, si prega di chiedere a un esperto di esaminarlo (come consulente). Se lo si utilizza in un progetto open source, è necessario aggiungere avvisi che la crittografia potrebbe contenere vulnerabilità sconosciute.
Con quello fuori mano, ecco cosa dovresti cercare:
Prima di utilizzare un algoritmo specifico, come AES o RC4 o MD5, guarda su Wikipedia per vedere se è noto e se ha qualche vulnerabilità. Ad esempio, non è più consigliabile utilizzare RC4 e MD5. Altri algoritmi che le persone pubblicano online (che hanno fatto da soli) non sono ben conosciuti e testati e sono quasi sempre infranti. Questo è meno comune in questi giorni rispetto a dieci anni fa, ma ancora qualcosa a cui prestare attenzione.
Se si desidera utilizzare AES-256 in modalità CTR con PBKDF2-SHA256 come KDF e HMAC-SHA256 come codice di autenticazione, ora ci sono molte cose da cercare: AES-256 è sicuro? PBKDF2 è sicuro e come dovrebbe essere usato? SHA256 è sicuro? E HMAC è sicuro? Dovresti prima calcolare l'HMAC e poi criptarlo, o viceversa? Come dovrebbe essere utilizzata la modalità CTR? Ecc.
Un altro buon punto di partenza per conoscere la crittografia in generale è il corso Crypto 1 su Coursera . Fornisce una solida panoramica, ma non è molto pratico. A seconda di quanto desiderosi di immergerti nel programmare qualcosa da te, questo può o meno essere un corso da seguire.
Leggi altre domande sui tag encryption file-encryption programming