brutepass/index.html

169 lines
7.1 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Brute Password</title>
<link rel="icon" href="https://i.ibb.co/0ytfqw8/favicon.png" type="image/png"> <!-- Favicon link -->
<style>
body {
font-family: Arial, sans-serif;
background-color: #000; /* Set background color to black */
color: #fff; /* Set text color to white */
text-align: center; /* Center-align text */
}
table {
margin: auto;
width: 500px;
border-collapse: collapse;
}
td {
padding: 10px;
}
input[type="number"], input[type="text"] {
width: 90%;
background-color: #333; /* Dark background for inputs */
color: white; /* White text for inputs */
border: 1px solid #555; /* Slight border for inputs */
}
input[type="button"], .copy-button {
width: 100%;
padding: 10px;
background-color: #28a745;
color: white;
border: none;
cursor: pointer;
}
input[type="button"]:hover, .copy-button:hover {
background-color: #218838;
}
.result {
background-color: gray;
text-align: center;
padding: 10px;
}
img {
display: block; /* Make it block-level to center it */
margin: 0 auto; /* Center the image */
max-width: 100%; /* Responsive image */
height: auto; /* Maintain aspect ratio */
}
</style>
</head>
<body>
<img src="https://i.ibb.co/py2VgYV/securityops-logo.jpg" alt="Follow the white rabbit">
<form method="POST" onsubmit="event.preventDefault(); generatePassword();">
<table>
<tr>
<td align="right">Password length:</td>
<td><input type="number" id="len" value="250" min="1" required></td>
</tr>
<tr>
<td colspan="2">
<label><input type="checkbox" id="number" checked> Include Numbers</label><br>
<label><input type="checkbox" id="russian" checked> Include Russian characters</label><br>
<label><input type="checkbox" id="chinese" checked> Include Chinese characters</label><br>
<label><input type="checkbox" id="japanese" checked> Include Japanese characters</label><br>
<label><input type="checkbox" id="korean" checked> Include Korean characters</label><br>
<label><input type="checkbox" id="georgian" checked> Include Georgian characters</label><br>
<label><input type="checkbox" id="ascii" checked> Include ASCII characters</label><br>
<label><input type="checkbox" id="extascii" checked> Include ASCII extended characters</label><br>
<label><input type="checkbox" id="alien" checked> Include Alien characters</label><br>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="Generate Password!" onclick="generatePassword();">
</td>
</tr>
<tr class="result">
<td colspan="2">
<strong><span id="generatedPassword"></span></strong>
<p id="securityScore"></p>
</td>
</tr>
<tr>
<td colspan="2">
<button type="button" class="copy-button" onclick="copyToClipboard()">Copy to Clipboard</button>
</td>
</tr>
</table>
</form>
<script>
function generatePassword() {
// Character sets
const numberChars = '0123456789'
const russianChars = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя';
const chineseChars = '你好世界abc'; // Add more characters as needed
const japaneseChars = 'こんにちは世界'; // Add more characters as needed
const koreanChars = '안녕하세요세계'; // Add more characters as needed
const georgianChars = 'ა,b,გ,დ,ე,ვ,ზ,თ,ი,კ,ლ,მ,ნ,ო,პ,ჟ,რ,ს,ტ,უფ,ქ,ღ,,შ,ჩ,ც,ძ,წ,ჭ,ხ,ჯ,ჰ'; // Georgian characters
const asciiChars = '!"#$%&\'()*+,-./0123456789:;<=>?@[\\]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const extasciiChars = 'ÇüéâäàåçêëèïÎÄÅÉæôœøùûùúûüýþÿ';
const alienChars = '⍾⍙⟒⍀⏁⊬⎍⟟⍜⌿ç⌰☍⟊⊑☌⎎⎅⌇⏃⋉⌖☊⎐⏚⋏⋔';
// Get selected character sets
let charSet = '';
if (document.getElementById("number").checked) charSet += numberChars;
if (document.getElementById("russian").checked) charSet += russianChars;
if (document.getElementById("chinese").checked) charSet += chineseChars;
if (document.getElementById("japanese").checked) charSet += japaneseChars;
if (document.getElementById("korean").checked) charSet += koreanChars;
if (document.getElementById("georgian").checked) charSet += georgianChars;
if (document.getElementById("ascii").checked) charSet += asciiChars;
if (document.getElementById("extascii").checked) charSet += extasciiChars;
if (document.getElementById("alien").checked) charSet += alienChars;
// Get password length
const length = parseInt(document.getElementById("len").value);
let password = '';
// Generate password
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * charSet.length);
password += charSet[randomIndex];
}
// Display generated password
document.getElementById("generatedPassword").innerText = password;
// Calculate and display security score
displaySecurityScore(password);
}
function displaySecurityScore(password) {
let score = 0;
// Scoring criteria
const lengthCriteria = password.length >= 12 ? 2 : 0;
const upperCaseCriteria = /[A-Z]/.test(password) ? 1 : 0;
const lowerCaseCriteria = /[a-z]/.test(password) ? 1 : 0;
const numberCriteria = /[0-9]/.test(password) ? 1 : 0;
const specialCharCriteria = /[!"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/.test(password) ? 1 : 0;
const unicodeCriteria = /[\u0400-\u04FF\u4e00-\u9FFF\uac00-\ud7af]/.test(password) ? 1 : 0; // Unicode ranges for Russian, Chinese, Korean, etc.
score += lengthCriteria + upperCaseCriteria + lowerCaseCriteria + numberCriteria + specialCharCriteria + unicodeCriteria;
// Display score
const scoreText = score < 3 ? "Weak" : score < 5 ? "Moderate" : "Strong";
document.getElementById("securityScore").innerText = `Security Score: ${score} (${scoreText})`;
}
function copyToClipboard() {
const password = document.getElementById("generatedPassword").innerText;
if (password) {
navigator.clipboard.writeText(password).then(() => {
alert('Password copied to clipboard!');
}, (err) => {
console.error('Could not copy text: ', err);
});
} else {
alert('No password generated to copy!');
}
}
</script>
</body>
</html>