Sono abbastanza nuovo in questo, quindi sono sicuro che sia stato chiesto e risposto ma non riesco a trovare una risposta chiara. Se questo è già stato risolto, per favore indicami la giusta direzione e rimuoverò questa domanda.
Ho un programma che dovrà accettare un nome utente e una password dall'utente. Questo nome utente e password sono per un altro server, ma le informazioni dovranno essere passate attorno ad alcune DLL prima di inviare la richiesta finale all'altro server. La mia preoccupazione è di passare nomi utente e password tra DLL senza crittografia, quindi ho creato un semplice set di metodi Encrypt e Decrypt usando la classe System.Security.Cryptography.CryptoStream di Microsoft.
In sostanza, vengono eseguite le seguenti operazioni.
Una stringa semplice viene inserita nel metodo di crittografia insieme alla chiave di crittografia. Questo metodo genera quindi un array casuale casuale IV (8 byte), 8 byte e la codifica dell'array di byte. IV, array casuale e crittografia vengono quindi inseriti in un singolo array di byte e trasferiti tra DLL.
L'array di byte viene ricevuto da una DLL e passato attraverso il metodo di decrittografia con la chiave di crittografia. Questo metodo acquisisce la parte IV dell'array e la parte di crittografia dell'array e ignora gli 8 byte random aggiunti (questi vengono aggiunti semplicemente per ragioni totalmente arbitrarie). La stringa viene quindi decodificata.
Ho interrotto accidentalmente l'intera sicurezza dell'utilizzo di una crittografia aggiungendo gli IV alla matrice di byte crittografata?
Dovrei usare gli 8 byte casuali come sale (solo perché li ho comunque) e passarli attraverso la crittografia? O sarebbe sufficiente rompere ulteriormente?
Si noti che non ho accesso diretto a un elenco di nomi utente o password, si tratta di un'applicazione completamente esterna. Voglio solo assicurarmi che la richiesta e lo spostamento delle coppie nome utente e password siano al sicuro sulla mia parte.