45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
let d = "";
|
|
let n = "";
|
|
|
|
async function encrypt() {
|
|
const plaintext = document.getElementById("plaintext").value;
|
|
const size = document.getElementById("keysize").value;
|
|
|
|
if (!plaintext) return alert("Per favore, inserisci del testo da cifrare.");
|
|
|
|
document.getElementById("ciphertext").value = "Le foche stanno cifrando... Attendere prego.";
|
|
|
|
try {
|
|
const res = await fetch("/seal/rsa/encrypt", {
|
|
method: "POST", headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ text: plaintext, keysize: parseInt(size) })
|
|
});
|
|
const answer = await res.json();
|
|
document.getElementById("ciphertext").value = answer.ciphertext;
|
|
d = answer.keys.d;
|
|
n = answer.keys.n;
|
|
} catch (e) { alert("Impossibile connettersi al server Javalin."); }
|
|
}
|
|
|
|
async function decrypt() {
|
|
const input = document.getElementById("ciphertext").value;
|
|
if (!input) return alert("Non c'è nessun testo da decifrare.");
|
|
|
|
document.getElementById("decodedtext").value = "Decifratura in corso...";
|
|
|
|
try {
|
|
const res = await fetch("/seal/rsa/decrypt", {
|
|
method: "POST", headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ text: input, n: n, d: d })
|
|
});
|
|
document.getElementById("decodedtext").value = await res.text();
|
|
} catch (e) { alert("Impossibile connettersi al server."); }
|
|
}
|
|
|
|
// Gestione Menu Mobile
|
|
function toggleMenu() {
|
|
document.getElementById("nav-links").classList.toggle("active");
|
|
}
|
|
// Anno dinamico Footer
|
|
document.getElementById("year").innerText = new Date().getFullYear();
|