Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    3

    [C++] Crittografia DES - problema ultimo blocco

    salve!
    ho bisogno di implementare il des a scopo didattico per codificare/decodificare un file di testo. ho trovato una classe funzionante.ma non ha l algoritmo per il riempimento dell ultimo blocco.cioe il des codifica blocchi di 64bits..ma se l ultimo blocco non è di 64bits bisogna riempirlo. ho provato con una cosa del genere ma purtroppo non riesco a farlo funzionare. . . mi aiutate?grazie

    codifica:
    codice:
    fin.read(plaintext,64);
    while(!fin.eof())
    {
    dimens=fin.gcount();//salvo la dimensione dell ultimo blocco
    if (fin.gcount() < 64)for (int i=fin.gcount(); i<64; i++)plaintext[i] = 0;         
    chyphertext=d1.Encrypt(plaintext);
    fout.write(chyphertext,64);
    giri++;//salvo quanti cicli faccio
    fin.read(plaintext,64);
    }
    decodifica:
    codice:
    fin.read(plaintext,64);
    while(!fin.eof()){
    giri2++;
    chyphertext=d2.Decrypt(plaintext);
    if(giri2==giri)for (int i= 64; i>dimens; i--) if (plaintext[i]==0) plaintext[i] = '\0';
    fout.write(chyphertext,64);
    fin.read(plaintext,64);
    }

  2. #2
    Quello che dovresti fare sarebbe salvare nel file cifrato la dimensione originale del file: in questa maniera, decodificando il file, sai subito dove devi "tagliare" (ovvero, sai che i byte dopo un tot sono padding e non vanno scritti nel file di output).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    3
    Ciao
    grazie della risposta.
    Dici che in codifica dovrei riempire e in decodifica dovrei decodificare il numero di byte senza padding giusto?
    il problema e che anche i "giri" del while sono "sballati"! praticamente quando decodifico il mio file, l ultimo blocco viene sovrascritto più volte in maniera anomala, diventando più lungo(ma non in relazione agli "0" che ho aggiunto in codifica). potresti darmi qualche dritta in più?sono appena agli inizi..
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.