An open API service indexing awesome lists of open source software.

https://github.com/matbagnoletti/encryption

Programma Java di cifratura e decifratura che utilizza l'algoritmo di Vigenère.
https://github.com/matbagnoletti/encryption

encryption-decryption java multithreading thread vigenere-cipher

Last synced: 8 months ago
JSON representation

Programma Java di cifratura e decifratura che utilizza l'algoritmo di Vigenère.

Awesome Lists containing this project

README

          

Encryption

Made by @matbagnoletti


Docenti: prof.ssa @mciuchetti e prof.ssa Fioroni


Corso TPSIT a.s. 2023/2024, ITTS A. Volta (PG)



Ultimo commit
Linguaggio

## Descrizione
Questo progetto è un semplice programma di cifratura/decifratura che utilizza l'algoritmo del [**cifrario di Vigenère**](https://it.wikipedia.org/wiki/Cifrario_di_Vigen%C3%A8re).

## Struttura
Il progetto si compone dalle seguenti classi:
- [**Main**](Main.java): classe principale del programma, che contiene il metodo main.
- [**Vigenere**](Vigenere.java): classe che contiene i metodi popolare la matrice di Vigenère utilizzata per cifrare e decifrare. Implementa l'interfaccia [**Runnable**](https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html).
- [**Matrice**](Matrice.java): classe che contiene la matrice di Vigenère. Contiene i metodi per cifrare e decifrare un messaggio.

## Utilizzo
Per utilizzare il programma è necessario compilare il file [**Main.java**](Main.java) e avviare il programma.

Al primo avvio 4 Thread si occuperanno di popolare la matrice e la stamperanno a video.

Verrà successivamente chiesto di scegliere tramite menù tra (1) *cifrare*, (2) *decifrare* o (0) *terminare il programma*.

Entrambe le opzioni (1 e 2) richiederanno di:

1. Inserire uno username `` che verrà utilizzato per identificare il *file di output*.

2. Inserire una chiave `` di cifratura, che verrà utilizzata per cifrare o decifrare i messaggi.

3. Inserire un messaggio da cifrare `` o decifrare ``.

> [!NOTE]
> Il file di output si presenta come `` (privo di estensione). Un apposito menù eviterà di inserire un `` già utilizzato per non sovrascrivere, così, un file già esistente.

## Aggiornamenti (v.1.1)

- [x] Aggiunta di un loop nel menù per scegliere l'opzione da utilizzare.
- [x] Gestione di eventuali eccezioni generate durante l'inserimento di caratteri non supportati.

## Licenza d'uso
La seguente repository (e tutte le sue versioni) sono rilasciate sotto la [**MB General Copyleft License**](LICENSE).