-
Notifications
You must be signed in to change notification settings - Fork 0
/
cesarBase.js
102 lines (94 loc) · 3.74 KB
/
cesarBase.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//Selecionando os elementos
var select = document.querySelector('.selecionar');
var botaoResultado = document.querySelector("#verificar");
var incremento = document.querySelector('#numero');
var labelIncremento = document.querySelector('.incremento');
var alfabeto = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
// Ocultar/exibir o incremento ao selecionar cifra de césar
select.addEventListener('click', function () {
if (select.value == 'cesar') {
labelIncremento.style.display = 'flex';
incremento.style.display = 'flex';
} else {
labelIncremento.style.display = 'none';
incremento.style.display = 'none';
}
});
// Radio Button
botaoResultado.addEventListener('click', function () {
let radio = document.getElementsByName('cod');
if (radio[0].checked && select.value == 'cesar') {
cesarCodificado();
} else if (radio[1].checked && select.value == 'cesar') {
cesarDecodificado();
} else if (radio[0].checked && select.value == 'base64') {
baseCodificada();
} else if (radio[1].checked && select.value == 'base64') {
baseDecodificada();
}
});
//Dica do Rodrigo
function cesarCodificado() {
let letra = document.querySelector('.text').value.toLowerCase();
let incremento = document.getElementById('numero').value;
let inteiro = parseInt(incremento);
let resultado = '';
if (incremento > 25 || incremento < 1) {
document.querySelector('.resultado').innerHTML = `Incremento inválido! insira incremento de 1 a 25.`;
} else {
for (let i = 0; i < letra.length; i++) {
if (letra[i] != " ") {
for (let j = 0; j < alfabeto.length; j++) {
if (letra[i] == alfabeto[j]) {
resultado += alfabeto[(j + inteiro) % alfabeto.length];
}
}
}
else {
resultado += " ";
}
}
document.querySelector('.resultado').innerHTML = `${resultado}`;
}
return resultado;
};
//Decodificando o Cesar
function cesarDecodificado() {
let letra = document.querySelector('.text').value.toLowerCase();
let incremento = document.getElementById('numero').value;
let inteiro = parseInt(incremento);
let resultado = '';
//
if (incremento > 25 || incremento < 1) {
document.querySelector('.resultado').innerHTML = `Incremento inválido! insira incremento de 1 a 25.`;
} else {
for (let i = 0; i < letra.length; i++) {
if (letra[i] != " ") {
for (let j = 0; j < alfabeto.length; j++) {
if (letra[i] == alfabeto[j] && (j - inteiro) % 26 >= 0) {
resultado += alfabeto[(j - inteiro) % 26];
}
else if (letra[i] == alfabeto[j] && (j - inteiro) % 26 < 0) {
resultado += alfabeto[26 + (j - inteiro) % 26];
}
}
}
else {
resultado += " ";
}
}
document.querySelector('.resultado').innerHTML = `${resultado}`;
}
return resultado;
};
// Base 64 já tem um método definido em JS
function baseCodificada() {
let letra = document.querySelector('.text').value;
let resultado = btoa(letra);
return document.querySelector('.resultado').innerHTML = `${resultado}`;
};
function baseDecodificada() {
let letra = document.querySelector('.text').value;
let resultado = atob(letra);
return document.querySelector('.resultado').innerHTML = `${resultado}`;
};