-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
executable file
·65 lines (55 loc) · 2.18 KB
/
script.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
const 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"]
const selector = document.getElementById('deslocamento');
const texto = document.getElementById('para-criptografar');
const botao = document.getElementById('botao')
const result = document.getElementById("result")
selector.innerHTML = alfabeto.map((ele, index) => `<option value="${index}">${ele}</option>`).join('');
botao.addEventListener('click',() =>{
let textParaCriptografar = texto.value;
let deslocamento = +selector.value;
let cifrado = cifrar(textParaCriptografar, deslocamento);
console.log(textParaCriptografar)
console.log(cifrado)
result.classList.remove('invisivel')
result.innerHTML = cifrado
})
function letraPorIndex(index) {
let indexFinal;
if (index > 0){
indexFinal = index % alfabeto.length;
} else {
indexFinal = (alfabeto.length + index) % alfabeto.length;
}
return alfabeto[indexFinal];
}
//uma outra forma usando o loop for normal
// const cifrar = (text, deslocamento) => {
// let textUpcase = text.toUpperCase().split('');
// let textoCriptografado = [];
//
// for (let i = 0; i < textUpcase.length; i++) {
// let indiceDaLetra = alfabeto.indexOf(textUpcase[i])
// if (indiceDaLetra < 0){
// textoCriptografado.push(letraPorIndex(indiceDaLetra+deslocamento))
// } else {
// let novoIndice = (indiceDaLetra + deslocamento) % alfabeto.length;
// textoCriptografado.push(alfabeto[novoIndice])
// }
// }
//
// console.log(textoCriptografado)
// return textoCriptografado.join("");
// }
const cifrar = (text,deslocamento) => {
const textUppercase = text.toUpperCase().split('')
const textCriptografado = textUppercase.map(letter =>{
const indiceDaLetra = alfabeto.indexOf(letter);
if (indiceDaLetra < 0){
return letraPorIndex(indiceDaLetra + deslocamento)
} else {
const novoIndex = (indiceDaLetra + deslocamento) % alfabeto.length;
return alfabeto[novoIndex];
}
});
return textCriptografado.join('');
}