How it works
- Embed writes a compact header (magic “SGDN”, version, options, length) then hides bits in image pixels (RGB) or WAV samples. Header is stored sequentially; payload may be randomized (Fisher–Yates over positions via xorshift32) and optionally encrypted (AES-GCM via Web Crypto).
- Extract reads the header first; if randomized and/or encrypted were used, provide the same passphrase to reconstruct order and decrypt.
- Detect attempts header discovery and runs chi-square even/odd LSB tests, a pairs-of-values heuristic, and per-channel scores.
- All processing is on-device. No uploads. Source files never leave your browser.
Best practices
- Prefer PNG or BMP carriers. JPEG is lossy and may destroy embedded bits on save.
- Use 1 bit per channel/sample for subtlety; 2 bits increases capacity but is easier to detect.
- Encryption protects content; randomization protects placement. Use both for stronger secrecy.
Ethics: Only use steganography for lawful, ethical purposes.