Skip to content

Commit 0d9d11c

Browse files
Create README.md
1 parent 6a66334 commit 0d9d11c

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

README.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# HackerInside Text Encryption Utility
2+
Applicativo che consente di criptare e decriptare testi utilizzando l'algoritmo AES con chiavi a 256 bit e in modalità GCM (Galois/Counter Mode)
3+
4+
# Informazioni Generali
5+
**Algoritmo Utilizzato:** AES-256-GCM
6+
7+
**Gestione degli IV:** Ogni IV viene generato casualmente (utilizzando la classe SecureRandom) e concatenati ai dati cifrati
8+
9+
**Formato del KeyStore:** JCEKS
10+
11+
# Gestione delle chiavi e KeyStore
12+
Il software per poter criptare e/o decriptare ha bisogno di accedere ad un KeyStore (JCEKS) da cui preleva la chiave scelta.
13+
- Appena avviato il software verifica la presenza di un KeyStore con nome "KeyStore.jks", se non trovato provvede a crearne uno chiedendo una password (password generale del KeyStore)
14+
- Per poter aggiungere una chiave ad un KeyStore è possibile utilizzare l'apposita scheda nelle impostazioni (FILL) oppure utilizzare uno dei tanti KeyStore explorer disponibili (consigliato https://keystore-explorer.org/)
15+
- Il file "KeyStore.jks" deve rimanere dentro la stessa cartella dove risiede l'eseguibile
16+
17+
# ENCRYPT
18+
Per criptare un file procedere come segue:
19+
1) Avviare il programma e sbloccare il KeyStore utilizzando la propria password
20+
2) Selezionare dal menù a tendina la chiave che si desidera utilizzare
21+
3) Inserire il testo da criptare (o caricarlo da un file con l'apposita funzione nel menù contestuale)
22+
4) Premere il bottone ENCRYPT
23+
Il testo scritto sarà ora criptato, codificato e formattato sulla base delle opzioni da noi scelte.
24+
25+
# DECRYPT
26+
Per criptare un file procedere come segue:
27+
1) Avviare il programma e sbloccare il KeyStore utilizzando la propria password
28+
2) Selezionare dal menù a tendina la chiave che si desidera utilizzare
29+
3) Inserire il testo da criptato (o caricarlo da un file con l'apposita funzione nel menù contestuale)
30+
4) Premere il bottone DECRYPT
31+
32+
# Impostazioni generali di formattazione del testo e di codifica
33+
- **ENCODING:** Codifica che viene utilizzata per la rappresentazione del testo criptato, sono supportate:
34+
- Base64
35+
- Base58
36+
- Esadecimale (Hex)
37+
38+
- **SPACING:** Aggiunge uno spazio dopo "n" caratteri
39+
- **TextArea Wrapping:** Opzione di "a capo automatico" della textArea
40+
Queste informazioni vengono memorizzate attraverso le "Java Preferences API"
41+
42+
# Zeroize
43+
In caso di emergenza è possibile premere il bottone rosso ZEROIZE che provvederà ad **CORROMPERE PERMANENTEMENTE IL KEYSTORE** (viene sovrascritto con bytes casuali generati sul momento)
44+
45+
**Procedura di Zeroize:**
46+
- Premere il bottone ZEROIZE.
47+
- Prendere nota del codice che viene generato.
48+
- Inserire il codice ed attendere il messaggio di conferma.
49+
50+
# BEST PRACTICES
51+
- Generare la chiave di 256 bit in modo completamente casuale (possibilmente usando dispositivi RNG hardware e macchine "air-gapped").
52+
- Non archiviare mai la chiave in chiaro e/o su supporti di memoria non sicuri.
53+
- Comunica sempre al tuo interlocutore l'alias della chiave utilizzare.
54+
- Evita di utilizzare la funzione per visulizzare la chiave se non sei in un luogo sicuro con dispositivi sicuri.
55+
- Riavviare il programma dopo aver inserito una nuova chiave.
56+
57+
# Screenshot
58+
![Main Screen](https://github.com/FrancescoValentini/HackerInsideTextEncryptionUtility/blob/master/screenshot/Main.JPG)
59+
![Impostazioni_Generale](https://github.com/FrancescoValentini/HackerInsideTextEncryptionUtility/blob/master/screenshot/Impostazioni_Generale.JPG)
60+
![KeyFill](https://github.com/FrancescoValentini/HackerInsideTextEncryptionUtility/blob/master/screenshot/KeyFill.JPG)
61+
![Keys](https://github.com/FrancescoValentini/HackerInsideTextEncryptionUtility/blob/master/screenshot/Keys.JPG)
62+
63+
# Disclaimer
64+
Questo software è a puro scopo di divertimento, non deve essere preso in considerazione come punto di riferimento.
65+
66+
Non mi assumo nessuna responsabilità di eventuali danni provocati da questo codice o da suoi possibili usi impropri.
67+
68+
# Credits
69+
<a href="https://www.flaticon.com/free-icons/data-encryption" title="data encryption icons">Data encryption icons created by kerismaker - Flaticon</a>
70+
71+
# Sitografia
72+
- https://it.wikipedia.org/wiki/Advanced_Encryption_Standard
73+
- https://en.wikipedia.org/wiki/Galois/Counter_Mode
74+
- https://github.com/multiformats/java-multibase/blob/master/src/main/java/io/ipfs/multibase/Base58.java

0 commit comments

Comments
 (0)