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
Link al javadoc: (link)
Video di Test (link)
Small | Large |
- Seleziona schermata di "Test Primalità"
- Genera i numeri primi con algoritmo di Fermat
- Salva su file i numeri primi
- Seleziona schermata di "Algoritmo RSA"
- Carica il file con i numeri primi
- Cifra o decifra un messaggio
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
}
$ 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
Copyright 2024 Vittorio Piotti (GitHub page) (Personal page)
Version v1.0.0
License GPL-3.0
Copyright 2024 JFormDesigner GmbH
Version v3.2.5
License Apache License 2.0