Zero-dependency client-side image steganography workbench. Encodes UTF-8 payloads into 24-bit RGB least significant bitstreams, decomposes 8 bitplanes across color channels, and executes real-time Chi-square steganalysis.
🔒 Pure LSB Encoding
🔬 8-Bitplane Slicer
📊 Shannon Entropy
📈 Chi-Square (χ²) Steganalysis
⚡ 100% Client-Side ES6
[01] CARRIER IMAGE & LSB ENCODER
400x400 PXRGB (24-BIT)STATUS: CLEAN
SECRET PAYLOAD (UTF-8)0 / 59,992 BYTES
[02] 8-BITPLANE CHANNEL SLICER
ACTIVE BITPLANE:BIT 0 (LSB - NOISE & SECRET)
BITPLANE 0 // ALL CHANNELS
EXTRACTED PAYLOAD DECODER OUTPUTIDLE
[03] SHANNON ENTROPY & CHI-SQUARE (χ²) TEST
RED CHANNEL ENTROPY:7.92 / 8.00 bits
GREEN CHANNEL ENTROPY:7.90 / 8.00 bits
BLUE CHANNEL ENTROPY:7.94 / 8.00 bits
CHI-SQUARE (χ²) STEGANALYSIS ESTIMATE
0.0% PROBABILITY
Evaluates pairs of values (PoVs) $n_{2k}$ vs $n_{2k+1}$ across histogram bins.
[04] LSB BITSTREAM MEMORY HEX INSPECTOR
FIRST 256 BYTES
Loading LSB bitstream hex inspector...
PYTHON LSB STEGANOGRAPHY EXTRACTOR
import numpy as np
from PIL import Image
def extract_lsb_sten(img_path):
img = Image.open(img_path).convert('RGB')
arr = np.array(img).flatten()
bits = arr & 1
bytes_arr = np.packbits(bits)
if bytes_arr[:4].tobytes() == b"STEN":
length = int.from_bytes(bytes_arr[4:8], 'big')
return bytes_arr[8:8+length].tobytes().decode('utf-8')
return "No STEN signature found"