DeCript



Finalmente, dopo un paio di mesi di lavoro, ecco il mio primo programma di criptaggio/decriptaggio di stringhe di testo. L'ispirazione mi è venuta quando ho visto un programma di criptaggio molto serio, GnuPG; e in quel momento mi sono chiesto: "Chissà se riesco anche io a fare un programmino molto semplice che riesca a criptare un testo". Ecco che tra una linea di codice e ore passate ad eseguire il debug, è nato DeCript, il nome non è molto originale, ma personalmente ritengo che i contenuti siano interessanti.
Questo programma è ancora molto molto acerbo anche se lo sto sviluppando da molto tempo ormai, mancano le parti fondamentali come il salvataggio dei dati... spero di riuscire a completarlo prima o poi.

Inoltre la ritengo una rivincita nei confronti di jolanda_81. Dovete sapere che circa 4 o 5 mesi prima avevo scritto un programmino di poche righe che criptava delle stringhe di testo, in 5 minuti l'infame è riuscito a decriptare il testo.
Oggi come oggi non è ancora riuscito a "violare" DeCript (muhahahah), dice per mancanza di tempo...

- Algoritmi utilizzati in - DeCript 6.0.1:

    Nome:                     Breve Commento:

  1. criptPassword();        //Algoritmo per criptare la password
  2. togliSpazi();           //Elimina gli spazi dal testo
  3. capovolgi();            //Capovolge la stringa
  4. garbageMain();          //Inserisce lettere random (1:1)
  5. generaKeyMain();        //Genera Key 32-64-128-256 (default 32 Bytes)
  6. upperCase();            //Porta tutte le lettere maiuscole
  7. enigma(); New!          //Algoritmo macchina Enigma - WWII
  8. criptBrosso(); New!     //Cript Brosso!
  9. maincriptFine();        //Sposta lettere alla fine
  10. divisioneFibonacci();   //Lettere multiple raggruppate
  11. criptProfessionale();   //Sommo lettere 2a2+password
  12. criptMerge();           //Stringa+Stringa al contrario
  13. criptScambio();         //Associazioni diverse delle lettere
  14. cript_binario();        //Operazioni logiche (XOR)
  15. combinazioni();         //Combina le lettere tra loro
  16. criptFunzione();        //Esegue una formula con diversi elementi...
  17. criptaTestoKeyMain();   //Lettera+key=simbolo strano

* A breve vi presenterò un documento con tutti gli algoritmi spiegati in dettaglio. Il commento sopra è puramente indicativo, le reali funzioni di ogni singolo algoritmo sono più corpose. - Una piccola guida è già disponibile nel .rar del programma -

 

Di seguito è riportata una cronologia delle versioni:

- Versione 6.0.1: (27/12/2005) New!

  • Migrato su Eclipse 3.2M3 come ambiente di sviluppo:).
  • Corretti svariati errori.

- Versione 6.0.0: (05/11/2005)

  • Inserito il famosissimo algoritmo di codifica usato nella seconda guerra mondiale dai tedeschi per cifrare i propri messaggi. La famosa macchina enigma
    E siamo così a 17 :)

- Versione 4.9.0a: (30/08/2005)

  • Aggiunta schermata about.
  • Aggiunto pulsante "Algoritmi" dove vengono elencati e spiegati uno ad uno tutti gli algoritmi.

- Versione 4.8.6: (22/07/2005)

  • inserito 16° algoritmo. cript_brosso
  • cambiata interfaccia grafica inserimento password decript
  • spostata finestra runningcript
  • corrette piccole imperfezioni
  • Impossibile decriptare il testo se non si è prima criptato, e impossibile decriptare 2 volte di seguito il testo.
  • Obbligatorio inserire una password >2 caratteri.
  • Eliminati i messaggi di sviluppo su consolle.
  • Versione Finale!

- Versione 4.6.2: (08/04/2005)

  • corretto errore in criptdivisione. utilizzava 2 stringbuffer che non esistevano nel momento del decript.
  • corretti bug lettere accentate ì ò ù. Per la ì ho utilizzato una lettera simile perchè la i accentata non viene codificata bene....
  • java 5.0 u4
  • piccole correzioni secondarie al codice
  • Fixed contatore sbarra avanzamento criptaggio. Se si cancellava e si eseguiva un nuovo criptaggio il contatore partiva da 100 invece che 0.
  • fissata la dimensione della finestra RUNNINGcript
  • Completato algoritmo qualità password
  • Una volta eseguito il criptaggio anche se si clicca ancora su "cripta" non esegue nulla.
  • Terminato il criptaggio la scritta "Finito!" appare in rosso.
  • corrette alcune imperfezioni grafiche in runningcript

 

- Versione 4.0.1: (10/03/2005)

  • Rinnovata finestra runningcript e aggiunte molte informazioni e opzioni.
  • Migliorato algoritmo qualità password.
  • Versione Beta; molte funzioni sono ancora molto incomplete.

- Versione 4.0.0: (07/02/2005)

  • Eseguito un nuovo completo restyling dell'interfaccia grafica, tra qui:
    • Inserita finestra Inserimento/Viasualizzazione testo.
    • Inserita finestra inserimento Password
      • Nuova funzione qualità password
      • Inserita funzione di inserimento doppia password
    • Inserita finestra RunningCript per visualizzare il progredire del criptaggio
  • Velocizzato criptaggio
  • Corretti alcuni bug
  • Versione Beta; molte funzioni sono ancora molto incomplete

- Versione 2.8.18R: (18/01/2005)

  • Rifatta completamente interfaccia grafica (Molto professionale adesso:D)
  • Sostituiti i caratteri in "visCaraStrani" che impedivano l'immissione di altri caratteri e il corretto funzionamento del programma
  • Aggiunti i caratteri: } & % # Il Programma riconosce 67 caratteri.
  • Corretto bug lunghezza array della key. Se si cambiava la key dopo aver cancellato il programma si incrocchiava (messo a 256...).
  • Corretto bug inserimento password. Se non mi metteva la password il programma andava in crasch (per ora è obbligatorio metterla).

- Versione 2.6.6: (08/01/2005)

  • Aggiunti 5 caratteri al programma (+ $ { * @). Il programma riconosce 63 caratteri con questa ultima versione.
  • Corretto bug "%". Adesso è possibile utilizzare tale carattere (ancora da implementare).
  • Compilato con la versione Java 5.0 Update 1.

- Versione 2.6.2: (31/10/2004)

  • Aggiunti 2 caratteri al programma (le due parentesi quadre [] ). Il programma riconosce 58 caratteri con questa versione.
  • Bug Fix.

- Versione 2.6.0: (09/09/2004)

  • Aggiunto pulsante "cancella". Permette di riportare il programma nella situazione di default.
  • Compilato con la versione Java 5.0 RC

- Versione 2.4.6: (29/08/2004)

  • Migliorata interfaccia grafica.
  • Aggiunta possibilità di modificare la lunghezza della key (32-64-128-256 Byte)
  • Eseguite piccole correzioni al codice
  • Migliorato il sistema di calcolo e salvataggio della key.
  • Introdotto metodo "requestFocus()" su tutti i pulsanti in modo tale da eliminare il fastidioso focus sugli oggetti del programma.

- Versione 2.1.7: (19/07/2004)

  • Nuovo algoritmo "Combinazioni" (14° Algoritmo ;) ).

- Versione 2.0.2: (02/07/2004)

  • Aggiunto un tempo random al ritardo di elaborazione delle lettere (aumento teorico della generazione casuale di numero e aumeto medio della velocità di criptaggio)

- Versione 2.0.1: (16/06/2004)

  • Aggiunto un nuovo algoritmo di criptaggio del testo. Questo algoritmo prende le lettere e le combina tra di loro (in un particolare modo) tramite una porta logica XOR. Questo algoritmo non è dinamico, però offre un buon livello di criptaggio.
  • Compilato con la nuova versione Java 1.5.0 Beta 2
  • Migliorato algoritmo garbageMain(). (tempo variabile ritardo calcolo numerorandom). Inoltre è stato ridotto drasticamente il tempo di codifica del testo (sceso quasi dell'80%).
  • Ho incominciato a scrivere la documentazione, molto presto sarà unline una prima parte;)

- Versione 1.9.8: (31/03/2004)

  • Implementato algoritmo di criptaggio della password. Adesso la password verrà memorizzata criptata in modo tale da non renderla pubblica. Queso algoritmo sfrutta l'algoritmo di esecuzione della Serie Di Fibonacci.

- Versione 1.9.2: (27/03/2004)

  • Aggiunto nuovo algoritmo di criptaggio; CriptFine. Questo nuovo algoritmo cripta il testo in una maniera completamente dinamica (simile ad alcuni altri algoritmi).
  • Ho cercato di ottimizzare alcuni pezzi di programma e sprecare il minimo delle risorse HW.

- Versione 1.8.0:

  • Rifatta completamente la veste grafica del programma. Ho ridotto la metà il codice e moltiplicato per 3 i contenuti:).
  • Tra breve saranno disponibili le funzioni che sono comparse in questa ultima release.
  • Corretto errore numero di volte che si può sbagliare la password. Adesso sono 3 volte giuste.
  • Corretti piccoli bug.

- Versione 1.7.1:

  • Final Release. Stabile :)
  • Aggiunti moltissimi caratteri (ne mancano però ancora alcuni...)
  • Complicati leggermente alcuni algoritmi.
  • Inserito un particolare algoritmo basato su una proprietà della Serie Di Fibonacci. La proprietà è la Divisione.
  • Migliorata visualizzazione e abbellito notevolmente la GUI.
  • Diminuito notevolmente la quantità di dati da salvare. Adesso è sufficiente salvare solo 4 array + il testo criptato.

- Versione 1.6.0:

  • Riscritto completamente il programma a causa di sporadici errori di decriptaggio. La stringa di uscita non era uguale alla stringa di ingresso (e corretto errore W e J).
  • Aggiunto algoritmo di criptaggio "CriptProf".
  • Aggiunto algoritmo di criptaggio "Merge".
  • Modificato algoritmo generaKey, adesso è possibile aumentare facilmente il numero di Bit (64, 128, 256...1024).
  • Velocizzato notevolmente il processo di criptaggio (rimane ancora lento per mia volontà. In questo modo i numeri generati saranno il più pseudorandom possibili).

- Versione 1.4.6:

  • Creata interfaccia grafica.
  • Aggiunto algoritmo di criptaggio "Garbage".
  • Corretti alcuni bug importanti.
  • Creata una Key da 32Bit per criptare il codice.

- Versione 1.2.0:

  • Aggiunti nuovi caratteri.
  • Aggiornati e corretti algoritmi di criptaggio.
  • Mancanza dei caratteri W e J. Ho corretto questa mancanza con una patch, una toppa che aggira il problema, ma molto molto poco professionale.

- Versione 1.1.2:

  • Aggiunti diversi algoritmi di criptaggio.
  • Corretti alcuni errori.

- Versione 1.0.0: First Release

  • Il programma esegue le funzioni basilari.
  • Presenti ancora molti Bug.



  : Download :

D
i seguito potete scaricare due differenti versioni del programma. La prima è il codice sorgente del cuore del programma, la seconda sono i binari; ovvero i files pre compilati e "pronti per l'uso".
Se avete domande sul programma o qualche problema di visualizzazione/download, chiedete pure.

- Sorgente  : [ [s]DeCript 6.0.1.rar ]

- Eseguibile : [ [e]DeCript 6.0.1.rar ]