Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

vittorioPiotti/FermatAndRSA-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

51 Commits

Repository files navigation

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 πŸŽ“ Β· IV

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

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /