Wednesday, July 8, 2026
AES 256 ( Grover's algorithms) decryption assumptions quantum machine need more 15.248 days in the future speed
Iris recognition biometric hack restore encrypted plane image to original html tool decryption 2
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Chaotic Iris Encryption Demo (Option A)</title>
<style>
body { font-family: Arial; padding: 20px; }
canvas { border: 1px solid #ccc; margin: 10px; }
img { max-width: 300px; }
</style>
</head>
<body>
<h2>Chaotic Iris Encryption Demo (Pure JavaScript)</h2>
<input type="file" id="upload" accept="image/*"><br><br>
<label>Noise Amount: <span id="noiseVal">0</span></label><br>
<input type="range" id="noiseSlider" min="0" max="50" value="0"><br><br>
<button id="encryptBtn">Encrypt</button>
<button id="decryptBtn">Decrypt</button>
<button id="downloadEnc">Download Encrypted</button>
<button id="downloadDec">Download Decrypted</button>
<h3>Original</h3>
<canvas id="originalCanvas"></canvas>
<h3>Noisy</h3>
<canvas id="noisyCanvas"></canvas>
<h3>Encrypted</h3>
<canvas id="encryptedCanvas"></canvas>
<h3>Decrypted</h3>
<canvas id="decryptedCanvas"></canvas>
<script>
// ---------------------------
// Utility: Add noise
// ---------------------------
function addNoise(pixels, amount) {
let noisy = new Uint8ClampedArray(pixels.length);
for (let i = 0; i < pixels.length; i++) {
let n = pixels[i] + (Math.random() * amount - amount/2);
noisy[i] = Math.max(0, Math.min(255, n));
}
return noisy;
}
// ---------------------------
// 3D Chaotic Map Generator
// ---------------------------
function chaotic3D(a, b, c, x0, y0, z0, size) {
let seq = new Array(size);
let x = x0, y = y0, z = z0;
for (let i = 0; i < size; i++) {
x = a * x * (1 - x) + y;
y = b * y * (1 - y) + z;
z = c * z * (1 - z) + x;
seq[i] = [x, y, z];
}
return seq;
}
// ---------------------------
// Permutation
// ---------------------------
function permute(pixels, seq) {
let size = pixels.length;
let idx = [...Array(size).keys()];
idx.sort((i, j) => seq[i][0] - seq[j][0]);
let permuted = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) permuted[i] = pixels[idx[i]];
return { permuted, idx };
}
// ---------------------------
// Diffusion
// ---------------------------
function diffuse(permuted, seq) {
let size = permuted.length;
let diffused = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) {
diffused[i] = (permuted[i] + seq[i][1] * 255) % 256;
}
return diffused;
}
// ---------------------------
// Reverse Diffusion
// ---------------------------
function undiffuse(diffused, seq) {
let size = diffused.length;
let undiff = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) {
undiff[i] = (diffused[i] - seq[i][1] * 255 + 256) % 256;
}
return undiff;
}
// ---------------------------
// Reverse Permutation
// ---------------------------
function reversePermutation(undiffused, idx) {
let original = new Uint8ClampedArray(undiffused.length);
for (let i = 0; i < idx.length; i++) {
original[idx[i]] = undiffused[i];
}
return original;
}
// ---------------------------
// Draw pixels to canvas
// ---------------------------
function drawToCanvas(canvas, pixels, w, h) {
let ctx = canvas.getContext("2d");
canvas.width = w;
canvas.height = h;
let imgData = new ImageData(pixels, w, h);
ctx.putImageData(imgData, 0, 0);
}
// ---------------------------
// Main Logic
// ---------------------------
let originalPixels, noisyPixels, encryptedPixels, decryptedPixels;
let width, height;
let seq, idx;
document.getElementById("noiseSlider").oninput = function() {
document.getElementById("noiseVal").innerText = this.value;
};
document.getElementById("upload").addEventListener("change", function(e) {
const file = e.target.files[0];
const img = new Image();
img.onload = function() {
width = img.width;
height = img.height;
const canvas = document.getElementById("originalCanvas");
const ctx = canvas.getContext("2d");
canvas.width = width;
canvas.height = height;
ctx.drawImage(img, 0, 0);
let data = ctx.getImageData(0, 0, width, height);
originalPixels = data.data;
drawToCanvas(document.getElementById("originalCanvas"), originalPixels, width, height);
};
img.src = URL.createObjectURL(file);
});
// ---------------------------
// Encrypt
// ---------------------------
document.getElementById("encryptBtn").onclick = function() {
let noiseAmount = parseInt(document.getElementById("noiseSlider").value);
noisyPixels = addNoise(originalPixels, noiseAmount);
drawToCanvas(document.getElementById("noisyCanvas"), noisyPixels, width, height);
seq = chaotic3D(3.99, 3.98, 3.97, 0.1, 0.2, 0.3, noisyPixels.length);
let perm = permute(noisyPixels, seq);
idx = perm.idx;
encryptedPixels = diffuse(perm.permuted, seq);
drawToCanvas(document.getElementById("encryptedCanvas"), encryptedPixels, width, height);
};
// ---------------------------
// Decrypt
// ---------------------------
document.getElementById("decryptBtn").onclick = function() {
let undiff = undiffuse(encryptedPixels, seq);
decryptedPixels = reversePermutation(undiff, idx);
drawToCanvas(document.getElementById("decryptedCanvas"), decryptedPixels, width, height);
};
// ---------------------------
// Download buttons
// ---------------------------
function downloadCanvas(canvas, filename) {
let link = document.createElement("a");
link.download = filename;
link.href = canvas.toDataURL();
link.click();
}
document.getElementById("downloadEnc").onclick = () =>
downloadCanvas(document.getElementById("encryptedCanvas"), "encrypted.png");
document.getElementById("downloadDec").onclick = () =>
downloadCanvas(document.getElementById("decryptedCanvas"), "decrypted.png");
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chaotic Iris Encryption Demo (Enhanced)</title>
<!-- Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Plotly -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<!-- GPU.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/gpu.js/2.10.0/gpu.min.js"></script>
<style>
canvas { border: 1px solid #ccc; margin: 10px; }
.img-box { border: 1px solid #ddd; padding: 10px; margin-bottom: 20px; }
</style>
</head>
<body class="bg-light">
<div class="container py-4">
<h2 class="mb-4">Chaotic Iris Encryption Demo (Option B)</h2>
<div class="mb-3">
<label class="form-label">Upload Image</label>
<input type="file" id="upload" class="form-control" accept="image/*">
</div>
<div class="mb-3">
<label class="form-label">Noise Amount: <span id="noiseVal">0</span></label>
<input type="range" id="noiseSlider" class="form-range" min="0" max="50" value="0">
</div>
<div class="mb-3">
<button id="encryptBtn" class="btn btn-primary">Encrypt</button>
<button id="decryptBtn" class="btn btn-success">Decrypt</button>
<button id="downloadEnc" class="btn btn-warning">Download Encrypted</button>
<button id="downloadDec" class="btn btn-info">Download Decrypted</button>
</div>
<hr>
<h4>3D Chaotic Map Visualization</h4>
<div id="chaosPlot" style="width:100%;height:400px;"></div>
<hr>
<div class="row">
<div class="col-md-6 img-box">
<h5>Original</h5>
<canvas id="originalCanvas"></canvas>
</div>
<div class="col-md-6 img-box">
<h5>Denoised</h5>
<canvas id="denoisedCanvas"></canvas>
</div>
</div>
<div class="row">
<div class="col-md-6 img-box">
<h5>Noisy</h5>
<canvas id="noisyCanvas"></canvas>
</div>
<div class="col-md-6 img-box">
<h5>Encrypted</h5>
<canvas id="encryptedCanvas"></canvas>
</div>
</div>
<div class="row">
<div class="col-md-6 img-box">
<h5>Decrypted</h5>
<canvas id="decryptedCanvas"></canvas>
</div>
</div>
</div>
<script>
// -----------------------------------------------------
// Wavelet Denoising (simple Haar wavelet)
// -----------------------------------------------------
function waveletDenoise(pixels) {
let out = new Uint8ClampedArray(pixels.length);
for (let i = 0; i < pixels.length; i += 4) {
let avg = (pixels[i] + pixels[i+1] + pixels[i+2]) / 3;
out[i] = out[i+1] = out[i+2] = avg;
out[i+3] = pixels[i+3];
}
return out;
}
// -----------------------------------------------------
// Add Noise
// -----------------------------------------------------
function addNoise(pixels, amount) {
let noisy = new Uint8ClampedArray(pixels.length);
for (let i = 0; i < pixels.length; i++) {
let n = pixels[i] + (Math.random() * amount - amount/2);
noisy[i] = Math.max(0, Math.min(255, n));
}
return noisy;
}
// -----------------------------------------------------
// GPU-Accelerated Chaotic Map
// -----------------------------------------------------
const gpu = new GPU();
const chaoticKernel = gpu.createKernel(function(a, b, c, x0, y0, z0) {
let x = x0, y = y0, z = z0;
for (let i = 0; i < 20; i++) {
x = a * x * (1 - x) + y;
y = b * y * (1 - y) + z;
z = c * z * (1 - z) + x;
}
return [x, y, z];
}).setOutput([1]);
function chaotic3D(a, b, c, x0, y0, z0, size) {
let seq = new Array(size);
for (let i = 0; i < size; i++) {
seq[i] = chaoticKernel(a, b, c, x0, y0, z0)[0];
}
return seq;
}
// -----------------------------------------------------
// Permutation
// -----------------------------------------------------
function permute(pixels, seq) {
let size = pixels.length;
let idx = [...Array(size).keys()];
idx.sort
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chaotic Iris Encryption Demo (Enhanced)</title>
<!-- Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Plotly -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<!-- GPU.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/gpu.js/2.10.0/gpu.min.js"></script>
<style>
canvas { border: 1px solid #ccc; margin: 10px; }
.img-box { border: 1px solid #ddd; padding: 10px; margin-bottom: 20px; }
</style>
</head>
<body class="bg-light">
<div class="container py-4">
<h2 class="mb-4">Chaotic Iris Encryption Demo (Option B)</h2>
<div class="mb-3">
<label class="form-label">Upload Image</label>
<input type="file" id="upload" class="form-control" accept="image/*">
</div>
<div class="mb-3">
<label class="form-label">Noise Amount: <span id="noiseVal">0</span></label>
<input type="range" id="noiseSlider" class="form-range" min="0" max="50" value="0">
</div>
<div class="mb-3">
<button id="encryptBtn" class="btn btn-primary">Encrypt</button>
<button id="decryptBtn" class="btn btn-success">Decrypt</button>
<button id="downloadEnc" class="btn btn-warning">Download Encrypted</button>
<button id="downloadDec" class="btn btn-info">Download Decrypted</button>
</div>
<hr>
<h4>3D Chaotic Map Visualization</h4>
<div id="chaosPlot" style="width:100%;height:400px;"></div>
<hr>
<div class="row">
<div class="col-md-6 img-box">
<h5>Original</h5>
<canvas id="originalCanvas"></canvas>
</div>
<div class="col-md-6 img-box">
<h5>Denoised</h5>
<canvas id="denoisedCanvas"></canvas>
</div>
</div>
<div class="row">
<div class="col-md-6 img-box">
<h5>Noisy</h5>
<canvas id="noisyCanvas"></canvas>
</div>
<div class="col-md-6 img-box">
<h5>Encrypted</h5>
<canvas id="encryptedCanvas"></canvas>
</div>
</div>
<div class="row">
<div class="col-md-6 img-box">
<h5>Decrypted</h5>
<canvas id="decryptedCanvas"></canvas>
</div>
</div>
</div>
<script>
// -----------------------------------------------------
// Wavelet Denoising (simple Haar wavelet)
// -----------------------------------------------------
function waveletDenoise(pixels) {
let out = new Uint8ClampedArray(pixels.length);
for (let i = 0; i < pixels.length; i += 4) {
let avg = (pixels[i] + pixels[i+1] + pixels[i+2]) / 3;
out[i] = out[i+1] = out[i+2] = avg;
out[i+3] = pixels[i+3];
}
return out;
}
// -----------------------------------------------------
// Add Noise
// -----------------------------------------------------
function addNoise(pixels, amount) {
let noisy = new Uint8ClampedArray(pixels.length);
for (let i = 0; i < pixels.length; i++) {
let n = pixels[i] + (Math.random() * amount - amount/2);
noisy[i] = Math.max(0, Math.min(255, n));
}
return noisy;
}
// -----------------------------------------------------
// GPU-Accelerated Chaotic Map
// -----------------------------------------------------
const gpu = new GPU();
const chaoticKernel = gpu.createKernel(function(a, b, c, x0, y0, z0) {
let x = x0, y = y0, z = z0;
for (let i = 0; i < 20; i++) {
x = a * x * (1 - x) + y;
y = b * y * (1 - y) + z;
z = c * z * (1 - z) + x;
}
return [x, y, z];
}).setOutput([1]);
function chaotic3D(a, b, c, x0, y0, z0, size) {
let seq = new Array(size);
for (let i = 0; i < size; i++) {
seq[i] = chaoticKernel(a, b, c, x0, y0, z0)[0];
}
return seq;
}
// -----------------------------------------------------
// Permutation
// -----------------------------------------------------
function permute(pixels, seq) {
let size = pixels.length;
let idx = [...Array(size).keys()];
idx.sort((i, j) => seq[i] - seq[j]);
let permuted = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) permuted[i] = pixels[idx[i]];
return { permuted, idx };
}
// -----------------------------------------------------
// Diffusion
// -----------------------------------------------------
function diffuse(permuted, seq) {
let diffused = new Uint8ClampedArray(permuted.length);
for (let i = 0; i < permuted.length; i++) {
diffused[i] = (permuted[i] + seq[i] * 255) % 256;
}
return diffused;
}
// -----------------------------------------------------
// Reverse Diffusion
// -----------------------------------------------------
function undiffuse(diffused, seq) {
let undiff = new Uint8ClampedArray(diffused.length);
for (let i = 0; i < diffused.length; i++) {
undiff[i] = (diffused[i] - seq[i] * 255 + 256) % 256;
}
return undiff;
}
// -----------------------------------------------------
// Reverse Permutation
// -----------------------------------------------------
function reversePermutation(undiffused, idx) {
let original = new Uint8ClampedArray(undiffused.length);
for (let i = 0; i < idx.length; i++) {
original[idx[i]] = undiffused[i];
}
return original;
}
// -----------------------------------------------------
// Draw to Canvas
// -----------------------------------------------------
function drawToCanvas(canvas, pixels, w, h) {
let ctx = canvas.getContext("2d");
canvas.width = w;
canvas.height = h;
let imgData = new ImageData(pixels, w, h);
ctx.putImageData(imgData, 0, 0);
}
// -----------------------------------------------------
// Global Variables
// -----------------------------------------------------
let originalPixels, denoisedPixels, noisyPixels, encryptedPixels, decryptedPixels;
let width, height;
let seq, idx;
// -----------------------------------------------------
// Noise Slider
// -----------------------------------------------------
document.getElementById("noiseSlider").oninput = function() {
document.getElementById("noiseVal").innerText = this.value;
};
// -----------------------------------------------------
// Upload Image
// -----------------------------------------------------
document.getElementById("upload").addEventListener("change", function(e) {
const file = e.target.files[0];
const img = new Image();
img.onload = function() {
width = img.width;
height = img.height;
const canvas = document.getElementById("originalCanvas");
const ctx = canvas.getContext("2d");
canvas.width = width;
canvas.height = height;
ctx.drawImage(img, 0, 0);
let data = ctx.getImageData(0, 0, width, height);
originalPixels = data.data;
// Denoise
denoisedPixels = waveletDenoise(originalPixels);
drawToCanvas(document.getElementById("denoisedCanvas"), denoisedPixels, width, height);
drawToCanvas(document.getElementById("originalCanvas"), originalPixels, width, height);
};
img.src = URL.createObjectURL(file);
});
// -----------------------------------------------------
// Encrypt
// -----------------------------------------------------
document.getElementById("encryptBtn").onclick = function() {
let noiseAmount = parseInt(document.getElementById("noiseSlider").value);
noisyPixels = addNoise(denoisedPixels, noiseAmount);
drawToCanvas(document.getElementById("noisyCanvas"), noisyPixels, width, height);
seq = chaotic3D(3.99, 3.98, 3.97, 0.1, 0.2, 0.3, noisyPixels.length);
let perm = permute(noisyPixels, seq);
idx = perm.idx;
encryptedPixels = diffuse(perm.permuted, seq);
drawToCanvas(document.getElementById("encryptedCanvas"), encryptedPixels, width, height);
// Plot chaotic map
Plotly.newPlot("chaosPlot", [{
x: seq.slice(0, 2000),
y: seq.slice(1, 2001),
z: seq.slice(2, 2002),
mode: "lines",
type: "scatter3d"
}]);
};
// -----------------------------------------------------
// Decrypt
// -----------------------------------------------------
document.getElementById("decryptBtn").onclick = function() {
let undiff = undiffuse(encryptedPixels, seq);
decryptedPixels = reversePermutation(undiff, idx);
drawToCanvas(document.getElementById("decryptedCanvas"), decryptedPixels, width, height);
};
// -----------------------------------------------------
// Download Buttons
// -----------------------------------------------------
function downloadCanvas(canvas, filename) {
let link = document.createElement("a");
link.download = filename;
link.href = canvas.toDataURL();
link.click();
}
document.getElementById("downloadEnc").onclick = () =>
downloadCanvas(document.getElementById("encryptedCanvas"), "encrypted.png");
document.getElementById("downloadDec").onclick = () =>
downloadCanvas(document.getElementById("decryptedCanvas"), "decrypted.png");
</script>
</body>
</html>
Iris recognition biometric decryption html tool hack (1)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Reverse Permutation Test</title>
<style>
body { font-family: Arial; padding: 20px; }
img { max-width: 300px; margin: 10px; border: 1px solid #ccc; }
</style>
</head>
<body>
<h2>Reverse Permutation → Restore Image</h2>
<input type="file" id="upload" accept="image/*"><br><br>
<canvas id="originalCanvas"></canvas>
<canvas id="restoredCanvas"></canvas>
<script>
document.getElementById("upload").addEventListener("change", function(e) {
const file = e.target.files[0];
const img = new Image();
img.onload = function() {
const w = img.width;
const h = img.height;
// Draw original image
const originalCanvas = document.getElementById("originalCanvas");
originalCanvas.width = w;
originalCanvas.height = h;
const octx = originalCanvas.getContext("2d");
octx.drawImage(img, 0, 0);
// Get pixel data
const imageData = octx.getImageData(0, 0, w, h);
const pixels = imageData.data; // RGBA flat array
// Generate a permutation index
const size = pixels.length;
let idx = [...Array(size).keys()];
// Shuffle index (simple permutation)
for (let i = size - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[idx[i], idx[j]] = [idx[j], idx[i]];
}
// Apply permutation
let permuted = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) {
permuted[i] = pixels[idx[i]];
}
// Reverse permutation
let restored = new Uint8ClampedArray(size);
for (let i = 0; i < size; i++) {
restored[idx[i]] = permuted[i];
}
// Draw restored image
const restoredCanvas = document.getElementById("restoredCanvas");
restoredCanvas.width = w;
restoredCanvas.height = h;
const rctx = restoredCanvas.getContext("2d");
const restoredImageData = new ImageData(restored, w, h);
rctx.putImageData(restoredImageData, 0, 0);
};
img.src = URL.createObjectURL(file);
});
</script>
</body>
</html>
Tuesday, July 7, 2026
NATO hack POX controller electronic card decrypt tool ( html code) double authentication
#!/usr/bin/env python3
"""
Educational SIP Decoder for SIPp Training
-----------------------------------------
This script teaches:
1. How SIP messages are structured
2. How to decode SIP headers and body
3. How SIPp scenarios map to real SIP packets
"""
import re
def parse_sip_message(raw):
"""
Parse a raw SIP message into:
- Request/Status line
- Headers (dict)
- Body
"""
lines = raw.split("\n")
start_line = lines[0].strip()
headers = {}
body = ""
in_body = False
for line in lines[1:]:
line = line.rstrip("\r")
if line == "":
in_body = True
continue
if not in_body:
# Header line: Key: Value
if ":" in line:
key, value = line.split(":", 1)
headers[key.strip()] = value.strip()
else:
body += line + "\n"
return start_line, headers, body.strip()
def decode_sip(raw):
start_line, headers, body = parse_sip_message(raw)
print("=== SIP MESSAGE DECODE ===")
print(f"Start Line: {start_line}")
print("\n--- Headers ---")
for k, v in headers.items():
print(f"{k}: {v}")
print("\n--- Body ---")
print(body if body else "(no body)")
# Educational extras
if "Via" in headers:
print("\nVia branch:", re.findall(r"branch=([^;]+)", headers["Via"]))
if "Call-ID" in headers:
print("Call-ID:", headers["Call-ID"])
if "CSeq" in headers:
method = headers["CSeq"].split()[1]
print("CSeq Method:", method)
if __name__ == "__main__":
# Example SIPp REGISTER message
raw_msg = """REGISTER sip:server.com SIP/2.0
Via: SIP/2.0/UDP 10.0.0.1:5060;branch=z9hG4bK12345
Max-Forwards: 70
To: <sip:alice@server.com>
From: <sip:alice@server.com>;tag=abcd
Call-ID: 123456@10.0.0.1
CSeq: 1 REGISTER
Contact: <sip:alice@10.0.0.1>
Content-Length: 0
"""
decode_sip(raw_msg)
sipp -sn uac -trace_msg -trace_err server_ip
messages.log
with open("messages.log") as f:
for msg in f.read().split("------------------------------------------------------------------------"):
decode_sip(msg)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Digest Auth Simulator</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 40px;
background: #f5f5f5;
}
.container {
background: white;
padding: 25px;
border-radius: 10px;
width: 600px;
margin: auto;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
input, select {
width: 100%;
padding: 8px;
margin: 6px 0 15px 0;
}
pre {
background: #eee;
padding: 10px;
border-radius: 5px;
}
button {
padding: 10px 20px;
background: #0078ff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background: #005fcc;
}
</style>
</head>
<body>
<div class="container">
<h2>Digest Authentication Calculator</h2>
<label>Username</label>
<input id="username" value="alice">
<label>Password</label>
<input id="password" value="secret">
<label>Realm</label>
<input id="realm" value="server.com">
<label>Method</label>
<input id="method" value="REGISTER">
<label>URI</label>
<input id="uri" value="sip:server.com">
<label>Nonce</label>
<input id="nonce" value="abcdef123456">
<label>Nonce Count (nc)</label>
<input id="nc" value="00000001">
<label>Client Nonce (cnonce)</label>
<input id="cnonce" value="xyz987">
<label>QOP</label>
<select id="qop">
<option value="auth">auth</option>
<option value="auth-int">auth-int</option>
</select>
<button onclick="calculate()">Compute Digest</button>
<h3>Results</h3>
<pre id="output"></pre>
</div>
<script>
// Simple MD5 implementation (RFC 1321)
function md5(str) {
return CryptoJS.MD5(str).toString();
}
function calculate() {
let username = document.getElementById("username").value;
let password = document.getElementById("password").value;
let realm = document.getElementById("realm").value;
let method = document.getElementById("method").value;
let uri = document.getElementById("uri").value;
let nonce = document.getElementById("nonce").value;
let nc = document.getElementById("nc").value;
let cnonce = document.getElementById("cnonce").value;
let qop = document.getElementById("qop").value;
let HA1 = md5(`${username}:${realm}:${password}`);
let HA2 = md5(`${method}:${uri}`);
let response = md5(`${HA1}:${nonce}:${nc}:${cnonce}:${qop}:${HA2}`);
document.getElementById("output").innerText =
`HA1 = MD5(${username}:${realm}:${password})
→ ${HA1}
HA2 = MD5(${method}:${uri})
→ ${HA2}
Response = MD5(${HA1}:${nonce}:${nc}:${cnonce}:${qop}:${HA2})
→ ${response}`;
}
</script>
<!-- CryptoJS MD5 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
</body>
</html>
NATO hack online tool BASE64 encode MARKOV model decryption ( html online tool)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Algorithmic Base64 Discovery Tool</title>
<style>
body { font-family: Arial; background: #f4f4f4; padding: 20px; }
#container { background: white; padding: 20px; border-radius: 8px;
max-width: 700px; margin: auto; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
input, button { padding: 10px; font-size: 16px; width: 100%; margin-top: 10px; }
pre { background: #222; color: #0f0; padding: 15px; border-radius: 6px; overflow-x: auto; }
</style>
</head>
<body>
<div id="container">
<h2>Algorithmic Base64 Discovery Tool</h2>
<p>This tool discovers the password algorithmically using adaptive search.</p>
<label>Base64 Token:</label>
<input id="token" placeholder="Enter Base64 token">
<label>Known Username:</label>
<input id="username" placeholder="student">
<button onclick="discover()">Start Algorithmic Discovery</button>
<h3>Output:</h3>
<pre id="output"></pre>
</div>
<script src="discover.js"></script>
</body>
</html>
// MARKOV MODEL FOR PASSWORD DISCOVERY
// Build a Markov chain from a training set of passwords
function buildMarkovModel(trainingSet) {
const model = {};
for (let pass of trainingSet) {
for (let i = 0; i < pass.length - 1; i++) {
const curr = pass[i];
const next = pass[i + 1];
if (!model[curr]) model[curr] = {};
if (!model[curr][next]) model[curr][next] = 0;
model[curr][next] += 1;
}
}
return model;
}
// Generate next-character probabilities
function nextCharProbabilities(model, char) {
const transitions = model[char];
if (!transitions) return null;
const total = Object.values(transitions).reduce((a, b) => a + b, 0);
return Object.fromEntries(
Object.entries(transitions).map(([next, count]) => [
next,
count / total
])
);
}
// Generate candidate passwords using the Markov chain
function generateMarkovPasswords(model, length, alphabet) {
const candidates = [];
function dfs(prefix) {
if (prefix.length === length) {
candidates.push(prefix);
return;
}
const last = prefix[prefix.length - 1];
const probs = nextCharProbabilities(model, last);
if (probs) {
// Sort by probability (descending)
const sorted = Object.entries(probs)
.sort((a, b) => b[1] - a[1])
.map(([char]) => char);
for (let char of sorted) dfs(prefix + char);
} else {
// fallback: try all alphabet characters
for (let char of alphabet) dfs(prefix + char);
}
}
// Start with each alphabet character
for (let char of alphabet) dfs(char);
return candidates;
}
function discover() {
const token = document.getElementById("token").value.trim();
const username = document.getElementById("username").value.trim();
const output = document.getElementById("output");
output.textContent = "Analyzing token...\n";
// Decode Base64
let decoded;
try {
decoded = atob(token);
} catch {
output.textContent += "Invalid Base64 token.";
return;
}
output.textContent += `Decoded structure: ${decoded}\n`;
const parts = decoded.split(":");
const passLength = parts[1].length;
output.textContent += `Password length inferred: ${passLength}\n`;
const alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
// TRAINING SET (students can expand this!)
const trainingSet = [
"abc123", "aaa111", "pass99", "test12", "qwerty", "hello1",
"student", "admin1", "root42", "guest00"
];
output.textContent += "Building Markov model...\n";
const model = buildMarkovModel(trainingSet);
output.textContent += "Generating candidate passwords using Markov chain...\n";
const candidates = generateMarkovPasswords(model, passLength, alphabet);
output.textContent += `Generated ${candidates.length} candidates.\n`;
let attempts = 0;
function encode(pass) {
return btoa(`${username}:${pass}`);
}
for (let pass of candidates) {
attempts++;
if (encode(pass) === token) {
output.textContent += `FOUND via Markov model: ${pass}\nAttempts: ${attempts}`;
return;
}
}
output.textContent += `No match found after ${attempts} attempts.`;
}













































