Come verificare se la decrittografia è corretta?

1

Sto lavorando su una chat room che crittografa i messaggi per più di un utente e ogni utente potrebbe avere crittografia e chiave / password diverse. La chiave dell'utente non funzionerà con tutti i messaggi, quindi; errori di restituzione.

var message ="secret message";
var encrypted = CryptoJS.AES.encrypt(message, "Secret Passphrase");
try {
    var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase123").toString(CryptoJS.enc.Utf8);
    if (decrypted.length > 0) {
        alert(decrypted);
    } else {
        alert("false");
    }
} catch(e) {
    alert("false");
}

Al momento sto rilevando l'errore, ma a volte la decifratura viene restituita con lettere e simboli mescolati. Il modo in cui sto facendo questo non è efficiente. C'è un modo migliore?

Chiedo a questo question earilier su StackOverflow, ma hanno suggerito che potrei avere la fortuna qui.

    
posta toastext 06.06.2016 - 20:02
fonte

1 risposta

1

Utilizza solo una modalità autenticata come GCM. Non solo questo ti dirà se è stata usata o meno la chiave corretta per decifrare, ma previene gli attacchi di manomissione dei messaggi, il peggiore dei quali può consentire agli aggressori di decifrare completamente i messaggi crittografati.

    
risposta data 06.06.2016 - 22:52
fonte

Leggi altre domande sui tag