Ho una conoscenza moderata della programmazione e attualmente scrivo un'applicazione di messaggistica client-server per Windows. Il mio progetto è stato scritto da zero usando i socket, e tutto ciò che fa è la trasmissione dei dati da un client al server, e quindi il server al resto dei client in una stanza (ho implementato le chat room). Al momento, i miei dati vengono trasmessi come una serie di byte di righe (usando .encode ('utf-8') se hai familiarità con python). Ma ovviamente, ho bisogno di creare un algoritmo di crittografia adeguato per questo. Sto pianificando di creare il mio, così sono sicuro della mancanza di vulnerabilità (so che può essere il contrario, ma mi fido di me stesso). Tuttavia, non sono sicuro di come dovrei memorizzare la chiave di crittografia. Se memorizzo senza mezzi termini la chiave nel client, è considerata sicura? Perché generare una chiave casuale e inviarla al destinatario sembra orribile non sicuro, dal momento che anche un bambino con MITM sarà in grado di vederlo. Quindi cosa faccio? Come generare e inviare / memorizzare le chiavi in modo da essere sicuro che sia almeno un po 'sicuro