Closed iurygdeoliveira closed 1 year ago
Eduardo José Kézio
<!DOCTYPE html>
h2 { margin: 0px; text-align: center; padding: 15px; }
.container { border: 15px solid #3c3b9a; padding: 20px; width: 280px; background-color: #25235def; }
.settings { display: grid; }
.setting { display: flex; justify-content: space-between; margin-bottom: 15px; }
input[type="checkbox"] { accent-color: #0079ff; }
.btn { cursor: pointer; color: #ffff; background-color: #3b3c9a; }
.btn-large { border: none; width: 100%; padding: 10px; }
.result-container { display: flex; width: 100%; background-color: #161438; margin-bottom: 15px; padding: 5px; font-size: 12px; justify-content: space-between; }
outline: none; border: none; }
.far { padding: 10px 5px; }
margin-left: 5px; align-self: center; }
const result = document.getElementById("result"); const generate = document.getElementById("generate"); const clipboard = document.getElementById("clipboard");
function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; }
function getRandomArbitraryIntegerNumber(min, max) { return Math.trunc(getRandomArbitrary(min, max)); }
function getRandonLetter(start) { const end = start + 26; const number = getRandomArbitraryIntegerNumber(start, end); return String.fromCharCode(number); }
function getRandonLowerLetter() { return getRandonLetter(97); }
function getRandomNumber() { const pos = getRandomArbitraryIntegerNumber(48, 57); return String.fromCharCode(pos); }
function getRandonUpperLetter() { return getRandonLetter(65); }
function getRandonChar() { const charRange = getRangeChars(); const pos = getRandomArbitraryIntegerNumber(1, charRange.length); const char = String.fromCharCode(charRange[pos]); return char; }
function getRange(min, max) { let len = max - min + 1; let arr = new Array(len); for (let i = 0; i < len; i++) { arr[i] = min + i; } return arr; }
function getRangeChars() { const charRange = getRange(33, 47).concat(getRange(58, 64)); return charRange; }
function getPass(hasUpper, hasLower, hasNumbers, hasSymbols, length) { const ArrPreferences = []; if (hasUpper) { ArrPreferences.push(getRandonUpperLetter); } if (hasLower) { ArrPreferences.push(getRandonLowerLetter); } if (hasNumbers) { ArrPreferences.push(getRandomNumber); } if (hasSymbols) { ArrPreferences.push(getRandonChar); }
if (ArrPreferences.length === 0) { return ""; }
let password = ""; for (let index = 0; index < length; index++) { let RandonPos = getRandomArbitraryIntegerNumber( 1, ArrPreferences.length + 1 ); password += ArrPreferences[RandonPos - 1](); }
return password; }
generate.addEventListener("click", () => { const uppercase = document.getElementById("uppercase").checked; const lowercase = document.getElementById("lowercase").checked; const numbers = document.getElementById("numbers").checked; const symbols = document.getElementById("symbols").checked; let length = document.getElementById("length").value; const password = getPass(uppercase, lowercase, numbers, symbols, length); result.innerText = password; });
clipboard.addEventListener("click", () => { const password = result.innerText; if (!password) { return; } const textArea = document.createElement("textarea"); textArea.value = password;
textArea.style.top = "0"; textArea.style.left = "0"; textArea.style.position = "fixed";
document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { const successful = document.execCommand("copy"); } finally { textArea.remove(); } });
resposta aceita
Contact Details
iury.oliveira@ifto.edu.br
Challenge Description
Olá crianças inocentes! Hoje eu tenho um desafio incrível para vocês, vamos construir juntos o Generate Password, um site que vai gerar senhas aleatórias super fortes e seguras. Sabemos que senhas são muito importantes para a segurança em desenvolvimento web, então vamos colocar a mão na massa.
Para começar, vocês vão precisar utilizar HTML para criar a estrutura básica da página, um formulário com os requisitos da senha e um botão para gerar a senha. Em seguida, vamos usar CSS para deixar a página mais bonita e organizada.
Agora vem a parte mais divertida, vamos utilizar JavaScript para gerar a senha. Vamos precisar de algumas funções que vão gerar senhas aleatórias com base nos requisitos escolhidos pelo usuário. Algumas dicas de comandos de JavaScript que podem ajudar vocês são: Math.random() para gerar números aleatórios, charCodeAt() para pegar o código de um caractere e String.fromCharCode() para converter um código de caractere em um caractere real.
Mas lembrem-se, crianças, a segurança é muito importante! Então vamos garantir que as senhas geradas tenham pelo menos 12 caracteres, incluam letras maiúsculas e minúsculas, números e símbolos.
Com tudo isso pronto, vocês terão construído um Generate Password incrível e muito útil para todos que precisam de senhas fortes e seguras.
Divirtam-se programando e lembrem-se sempre da importância da segurança em desenvolvimento web!
Exemplo
https://user-images.githubusercontent.com/30157522/224495402-e42606f9-2334-491f-8a4d-6bb9f56f60d9.mp4
Additional tips
Código HTML