diff --git a/backend/src/main/java/com/crypto/Main.java b/backend/src/main/java/com/crypto/Main.java
deleted file mode 100644
index b8e9679..0000000
--- a/backend/src/main/java/com/crypto/Main.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.crypto;
-import java.math.BigInteger;
-import java.util.Scanner;
-
-public class Main {
-
- // ─────────────────────────────────────────────
- // Menu
- // ─────────────────────────────────────────────
- private static int scegliDimensioneChiave(Scanner scanner) {
- int bits = 0;
-
- while (bits == 0) {
- System.out.println("\nSeleziona la dimensione della chiave:");
- System.out.println(" [1] 512 bit (Solo uso didattico)");
- System.out.println(" [2] 1024 bit (Deprecata, solo test)");
- System.out.println(" [3] 2048 bit (Standard attuale)");
- System.out.println(" [4] 3072 bit (Ottimo compromesso)");
- System.out.println(" [5] 4096 bit (Alta sicurezza)");
- System.out.print("Scelta (1-5): ");
-
- try {
- int scelta = Integer.parseInt(scanner.nextLine().trim());
-
- // Assegniamo i bit in base alla scelta
- switch (scelta) {
- case 1 -> bits = 512;
- case 2 -> bits = 1024;
- case 3 -> bits = 2048;
- case 4 -> bits = 3072;
- case 5 -> bits = 4096;
- default -> System.out.println("❌ Scelta non valida. Inserisci un numero da 1 a 5.");
- }
- } catch (NumberFormatException e) {
- System.out.println("❌ Errore: Inserisci un numero valido.");
- }
- }
-
- System.out.println("Selezionata chiave da " + bits + " bit.");
- return bits;
- }
-
- // Main
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
-
- System.out.println("==========================================");
- System.out.println(" RSA CRYPTO ENGINE ");
- System.out.println("==========================================");
-
- // --- 1. SETUP DELLE CHIAVI ---
- int dimChiave = scegliDimensioneChiave(scanner);
-
- System.out.println("\n⏳ Generazione delle chiavi in corso...");
- // Passiamo dimChiave / 2 come facevi prima per p e q
- RSA.RSAkeys chiavi = RSA.defkeys(dimChiave / 2);
- System.out.println("> Chiavi generate con successo!");
-
- boolean continua = true;
-
- // --- CICLO PRINCIPALE ---
- while (continua) {
-
- System.out.println("\n------------------------------------------");
- System.out.println("Cosa vuoi fare?");
- System.out.println(" [1] Cifra un numero");
- System.out.println(" [2] Cifra una stringa");
- System.out.println(" [3] Rigenera le chiavi");
- System.out.println(" [0] Esci");
- System.out.println("------------------------------------------");
- System.out.print("Scelta: ");
-
- int scelta = -1;
- try {
- scelta = Integer.parseInt(scanner.nextLine().trim());
- } catch (NumberFormatException ignored) {
- }
-
- System.out.println();
-
- switch (scelta) {
-
- case 1 -> {
- // MODALITÀ NUMERO
- System.out.print("Inserisci il numero da cifrare: ");
- try {
- BigInteger m = new BigInteger(scanner.nextLine().trim());
-
- System.out.println("> Cifratura in corso...");
- BigInteger c = RSA.encrypt(m, chiavi.e(), chiavi.n());
- System.out.println("Cifrato:\n" + c);
-
- System.out.println("\n> Decifratura in corso...");
- BigInteger dec = RSA.decrypt(c, chiavi.d(), chiavi.n());
- System.out.println("Decifrato:\n" + dec);
-
- } catch (IllegalArgumentException ex) {
- System.out.println("> Errore: Assicurati di inserire un numero valido.");
- }
- }
-
- case 2 -> {
- // MODALITÀ STRINGA
- System.out.print("Inserisci il testo da cifrare: ");
- String input = scanner.nextLine();
-
- System.out.println("> Cifratura in corso...");
- String cifrato = RSA.encrypt(input, chiavi.e(), chiavi.n());
- if (cifrato != null && !cifrato.isEmpty()) {
- // 2. SOLO PER LA STAMPA: nascondiamo il binario convertendolo in Base64
- String base64 = java.util.Base64.getEncoder().encodeToString(cifrato.getBytes());
- System.out.println("Cifrato (Base64):\n" + base64);
- }
-
- System.out.println("\n> Decifratura in corso...");
- String dec = RSA.decrypt(cifrato, chiavi.d(), chiavi.n());
- System.out.println("Decifrato:\n" + dec);
- }
-
- case 3 -> {
- // RIGENERA CHIAVI
- dimChiave = scegliDimensioneChiave(scanner);
- System.out.println("\n> Generazione delle chiavi in corso...");
- chiavi = RSA.defkeys(dimChiave / 2);
- System.out.println("> Chiavi rigenerate con successo!");
- }
-
- case 0 -> {
- continua = false;
- System.out.println("Chiusura del motore RSA. Alla prossima!");
- }
-
- default -> System.out.println("> Scelta non valida, riprova.");
- }
- }
-
- scanner.close();
- }
-}
-
diff --git a/backend/src/main/java/com/crypto/Seal.java b/backend/src/main/java/com/crypto/Seal.java
index 7421d50..1757e03 100644
--- a/backend/src/main/java/com/crypto/Seal.java
+++ b/backend/src/main/java/com/crypto/Seal.java
@@ -14,7 +14,7 @@ public class Seal {
System.out.println("Generazione chiavi RSA per il server web in corso...");
- // Cifratura con Cifrario di Vigenere
+ // Cifratura con Cifrario di Vigenere (TODO)
app.post("/seal/vigenere/encrypt", ctx -> {
}
@@ -30,6 +30,15 @@ public class Seal {
);
+ // Decifratura con Cifrario di Cesare (Attacco Bruteforce !!)
+ app.post("/seal/caesar/decrypt", ctx -> {
+ RichiestaCesare req = ctx.bodyAsClass(RichiestaCesare.class);
+ String[] ciphertext = Caesar.decode(req.ciphertext);
+ ctx.json(ciphertext);
+ }
+
+ );
+
// Cifratura con RSA
app.post("/seal/rsa/encrypt", ctx -> {
// Legge i dati nel body dalla richiesta
@@ -60,8 +69,8 @@ public class Seal {
class RichiestaCesare {
public int key;
public String plaintext;
-
- // Costruttore della richiesta
+ public String ciphertext;
+ public RichiestaCesare() {}
}
class RichiestaRSA {
diff --git a/backend/src/main/resources/get/cesare.html b/backend/src/main/resources/get/cesare.html
index ebb8e2e..d301430 100644
--- a/backend/src/main/resources/get/cesare.html
+++ b/backend/src/main/resources/get/cesare.html
@@ -46,7 +46,7 @@
-
+