brutepass/index.html

169 lines
7.1 KiB
HTML
Raw Permalink Normal View History

2024-09-28 02:09:56 +00:00
<!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">
2024-09-28 02:29:43 +00:00
<label><input type="checkbox" id="number" checked> Include Numbers</label><br>
2024-09-28 02:09:56 +00:00
<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
2024-09-28 02:29:43 +00:00
const numberChars = '0123456789'
2024-09-28 02:09:56 +00:00
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 = '';
2024-09-28 02:29:43 +00:00
if (document.getElementById("number").checked) charSet += numberChars;
2024-09-28 02:09:56 +00:00
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>