Skip to content

Soluzione software in Java che genera e salva su file i numeri primi con algoritmo di Fermat e algoritmo di crittografia RSA

License

vittorioPiotti/FermatAndRSA-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Fermat-And-RSA

Soluzione software in Java che genera e salva su file i numeri primi con algoritmo di Fermat e algoritmo di crittografia RSA

Note

Progetto scolastico πŸŽ“ Β· β…£

Warning

Presenza di BUG nell'UI


Javadoc

Link al javadoc: (link)

Preview

Video di Test (link)


Responsive

Small Large

Utilizzo

  1. Seleziona schermata di "Test PrimalitΓ "
  2. Genera i numeri primi con algoritmo di Fermat
  3. Salva su file i numeri primi
  4. Seleziona schermata di "Algoritmo RSA"
  5. Carica il file con i numeri primi
  6. Cifra o decifra un messaggio

Snippet Fermat Algorithm

public void algoritmoFermat(){ long start; //tempo inizio calcolo numeri primi long end; //tempo fine calcolo numeri primi boolean checkPrimo; //verifica se un numero Γ¨ primo //check = true: primo //check = false: composto start = System.currentTimeMillis(); //tempo inizio calcolo numeri primi  //ciclo for di i che scorre da min a max for ( BigInteger i = min; //Γ¨ il numero di cui si verifica la primalitΓ  i.compareTo(max) <= 0; i = i.add(BigInteger.valueOf(1))	) { incrementProgressBar.run(); checkPrimo = true; //ciclo for annidato di j che scorre da 2 al divisore massimo for ( BigInteger j = BigInteger.valueOf(2); //Γ¨ il dvisore del numero per la verifica della primalitΓ  j.compareTo(BigInteger.valueOf(10)) <= 0; //j compareTo fino al numero j = j.add(BigInteger.valueOf(1))) //verifica se j divisore di i ed in caso aggiorna check = false	{ if (Thread.currentThread().isInterrupted()) { end = System.currentTimeMillis(); //tempo fine calcolo numeri primi time = Math.abs(start - end) / 1000.0; //tempo durata calcolo numeri primi return;	} if (!j.modPow(i.subtract(BigInteger.valueOf(1)), i).equals(BigInteger.valueOf(1))) checkPrimo = false;	} if (checkPrimo){ results.add(i.toString()); appendResult.run();	}	} end = System.currentTimeMillis(); //tempo fine calcolo numeri primi time = Math.abs(start - end) / 1000.0; //tempo durata calcolo numeri primi }

Albero di Path

$ tree . β”œβ”€β”€lib β”‚ └── flatlaf-3.2.5.jar └──src └── org └── app β”œβ”€β”€ applications β”‚ β”œβ”€β”€ encryption β”‚ β”‚ β”œβ”€β”€ ReadFile.java β”‚ β”‚ └── TestEncryption.java β”‚ └── primality β”‚ β”œβ”€β”€ SavePrimality.java β”‚ └── TestPrimality.java β”œβ”€β”€ windows β”‚ β”œβ”€β”€ dependencies β”‚ β”‚ β”œβ”€β”€ components β”‚ β”‚ β”‚ β”œβ”€β”€ encryption β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ dialogs β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinErrorInEncryption.java β”‚ β”‚ β”‚ β”‚ β”‚ └── WinErrorOutEncryption.java β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ panels β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinInEncryption.java β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinOutEncryption.java β”‚ β”‚ β”‚ β”‚ β”‚ └── WinSaveEncryption.java β”‚ β”‚ β”‚ β”‚ └── WinEncryption.java β”‚ β”‚ β”‚ β”œβ”€β”€ primality β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ dialogs β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinErrorInPrimality.java β”‚ β”‚ β”‚ β”‚ β”‚ └── WinErrorOutPrimality.java β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ panels β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinInPrimality.java β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ WinOutPrimality.java β”‚ β”‚ β”‚ β”‚ β”‚ └── WinSavePrimality.java β”‚ β”‚ β”‚ β”‚ └── WinPrimality.java β”‚ β”‚ β”‚ └── WinHome.java β”‚ β”‚ └── managers β”‚ β”‚ β”œβ”€β”€ WinManagerEncryption.java β”‚ β”‚ └── WinManagerPrimality.java β”‚ └── WinManager.java β”œβ”€β”€ App.java └── Main.java 

Licenze

Fermat And RSA

Copyright 2024 Vittorio Piotti (GitHub page) (Personal page)

Version v1.0.0

License GPL-3.0


FlatLaf

Copyright 2024 JFormDesigner GmbH

Version v3.2.5

License Apache License 2.0