Files
Keylogger/Sign in/index.html
T

126 lines
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Secure Sign In</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://unicons.iconscout.com/release/v2.1.9/css/unicons.css">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/Sign in/style.css" />
</head>
<body>
<div class="section">
<div class="container">
<div class="row full-height justify-content-center">
<div class="col-12 text-center align-self-center py-5">
<div class="section pb-5 pt-5 pt-sm-2 text-center">
<h6 class="mb-0 pb-3"><span>Log In </span><span>Sign Up</span></h6>
<input class="checkbox" type="checkbox" id="reg-log" name="reg-log" />
<label for="reg-log"></label>
<div class="card-3d-wrap mx-auto">
<div class="card-3d-wrapper">
<div class="card-front">
<div class="center-wrap">
<div class="section text-center">
<h4 class="mb-4 pb-3">Log In</h4>
<form id="login-form" onsubmit="return validateLogin(event)">
<div class="form-group">
<input type="text" name="username" class="form-style" placeholder="Your Username"
id="logusername" autocomplete="off" required>
<i class="input-icon uil uil-user"></i>
</div>
<div class="form-group mt-2">
<input type="password" name="password" class="form-style" placeholder="Your Password"
id="logpass" autocomplete="off" required>
<i class="input-icon uil uil-lock-alt"></i>
</div>
<button type="submit" class="btn mt-4">Submit</button>
</form>
<p class="mb-0 mt-4 text-center">
<a href="#" class="link" onclick="checkLocalStorage()">Forgot your password?</a>
</p>
</div>
</div>
</div>
<div class="card-back">
<div class="center-wrap">
<div class="section text-center">
<h4 class="mb-4 pb-3">Sign Up</h4>
<div class="form-group">
<input type="text" id="logname" class="form-style" placeholder="Your Full Name"
autocomplete="off">
<i class="input-icon uil uil-user"></i>
</div>
<div class="form-group mt-2">
<input type="text" id="logusername-signup" class="form-style" placeholder="Choose Username"
autocomplete="off" required>
<i class="input-icon uil uil-user"></i>
</div>
<div class="form-group mt-2">
<input type="password" id="logpass-signup" class="form-style" placeholder="Choose Password"
autocomplete="off" required>
<i class="input-icon uil uil-lock-alt"></i>
</div>
<a href="#" class="btn mt-4" onclick="saveAndRedirect()">Submit</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
async function hashPassword(password) {
const msgBuffer = new TextEncoder().encode(password);
const hashBuffer = await crypto.subtle.digest("SHA-256", msgBuffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}
async function saveAndRedirect() {
const username = document.getElementById('logusername-signup').value.trim();
const password = document.getElementById('logpass-signup').value;
if (!username || !password) {
alert("Username and password required!");
return;
}
let users = JSON.parse(localStorage.getItem("users")) || [];
if (users.some(u => u.username === username)) {
alert("Username already exists. Choose another.");
return;
}
const hashedPass = await hashPassword(password);
users.push({ username, password: hashedPass });
localStorage.setItem("users", JSON.stringify(users));
document.getElementById('reg-log').checked = false;
document.getElementById('logusername').value = username;
document.getElementById('logpass').value = "";
}
async function validateLogin(event) {
event.preventDefault();
const enteredUser = document.getElementById('logusername').value.trim();
const enteredPass = document.getElementById('logpass').value;
let users = JSON.parse(localStorage.getItem("users")) || [];
const hashedPass = await hashPassword(enteredPass);
const user = users.find(u => u.username === enteredUser && u.password === hashedPass);
if (user) {
alert("Login successful!");
return true;
} else {
alert("Invalid username or password!");
return false;
}
}
function checkLocalStorage() {
console.log(JSON.parse(localStorage.getItem("users")));
alert("Check console for stored users.");
}
</script>
</body>
</html>