{"id":49790991,"url":"https://github.com/ceq151/lumincrypt","last_synced_at":"2026-05-12T04:04:23.763Z","repository":{"id":353814476,"uuid":"1221024348","full_name":"CEQ151/LuminCrypt","owner":"CEQ151","description":"桌面级 Unicode 隐写检测与鲁棒水印（文本/图片）工具箱","archived":false,"fork":false,"pushed_at":"2026-04-25T18:27:15.000Z","size":4587,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-25T18:29:23.327Z","etag":null,"topics":["blind-watermark","desktop-app","electron","image-processing","react","security","steganography","typescript","unicode","watermark"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CEQ151.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-25T16:48:06.000Z","updated_at":"2026-04-25T18:27:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/CEQ151/LuminCrypt","commit_stats":null,"previous_names":["ceq151/lumincrypt"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CEQ151/LuminCrypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CEQ151%2FLuminCrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CEQ151%2FLuminCrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CEQ151%2FLuminCrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CEQ151%2FLuminCrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CEQ151","download_url":"https://codeload.github.com/CEQ151/LuminCrypt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CEQ151%2FLuminCrypt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32922894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"online","status_checked_at":"2026-05-12T02:00:06.338Z","response_time":102,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blind-watermark","desktop-app","electron","image-processing","react","security","steganography","typescript","unicode","watermark"],"created_at":"2026-05-12T04:04:03.274Z","updated_at":"2026-05-12T04:04:23.753Z","avatar_url":"https://github.com/CEQ151.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eLuminCrypt\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eLocal-first Unicode steganography detection and robust watermark toolkit for text and images.\u003c/strong\u003e\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"README.zh-CN.md\"\u003e简体中文\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Electron-39-47848F?logo=electron\u0026logoColor=white\" alt=\"Electron\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/React-19-61DAFB?logo=react\u0026logoColor=black\" alt=\"React\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript\u0026logoColor=white\" alt=\"TypeScript\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Python-3.10+-3776AB?logo=python\u0026logoColor=white\" alt=\"Python\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-GPL--3.0-blue.svg\" alt=\"License\" /\u003e\n  \u003c/p\u003e\n\n  \u003cimg src=\"https://github.com/user-attachments/assets/ae9e81a0-a1d4-4271-a0a0-ab17c291bba9\" width=\"220\" alt=\"LuminCrypt logo\" /\u003e\n\u003c/div\u003e\n\n---\n\nLuminCrypt is a desktop security toolkit for **Unicode hidden-character detection**, **encrypted invisible text watermarking**, and **robust blind image watermarking**. It helps researchers, creators, publishers, and security teams inspect suspicious Unicode content, embed recoverable text fingerprints, and test image watermarks against compression, resizing, cropping, and platform re-encoding.\n\n## Key Features\n\n- **Unicode hidden character detection**: finds zero-width characters, BiDi controls, homoglyphs, Unicode Tags, variation selectors, and non-standard spaces.\n- **Encrypted text watermarking**: embeds AES-256-GCM protected payloads into normal text with invisible Unicode carriers and robust redundancy.\n- **Blind image watermarking**: uses a Python image watermark engine based on block-DCT, QIM-style embedding, Reed-Solomon recovery, and multi-scale extraction.\n- **Learning-assisted robust watermarking**: includes an experimental MLWM v1 alpha engine for short image payloads, ONNX inference, attack simulation, benchmark manifests, and automatic fallback to the legacy image watermark engine.\n- **Batch processing and reports**: scans files in batches and exports detection results as JSON, CSV, or PDF.\n- **Local desktop workflow**: built with Electron, React, TypeScript, and a Python helper for image watermark processing.\n\n## Project Status\n\n| Area | Status |\n|---|---|\n| Unicode hidden-character detection | Usable |\n| Encrypted text watermarking | Usable |\n| Legacy image blind watermarking | Usable |\n| MLWM v1 neural image watermarking | Alpha, short payloads only |\n\n`mlwm-v1-alpha1` is the first promoted neural watermark candidate. It is suitable for internal alpha testing and controlled validation, not yet for unsupported industrial deployment claims.\n\n## Screenshots\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/f12aaab2-747b-4cd8-b796-4b774d5ce56a\" width=\"100%\" alt=\"LuminCrypt screenshot 1\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/93dcb2ac-b11e-4c65-b47f-70a842f79372\" width=\"100%\" alt=\"LuminCrypt screenshot 2\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/770361e8-34f7-4f58-ba98-1d113b9c2a60\" width=\"100%\" alt=\"LuminCrypt screenshot 3\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/b677c03c-fa24-4d0e-97e6-1e174adc5010\" width=\"100%\" alt=\"LuminCrypt screenshot 4\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/8dce171c-c251-49b9-8799-69c80cbb756f\" width=\"100%\" alt=\"LuminCrypt screenshot 5\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"https://github.com/user-attachments/assets/d9107174-6f9a-417b-a584-bbf89c7cc11f\" width=\"100%\" alt=\"LuminCrypt screenshot 6\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Requirements\n\n| Tool | Version | Notes |\n|---|---:|---|\n| Node.js | 18+ | Electron and frontend build |\n| npm | 9+ | Package manager |\n| Python | 3.10+ runtime, 3.12 recommended for ML | Required for the image watermark backend and ML training tools |\n\n## Quick Start\n\nInstall Node dependencies:\n\n```bash\nnpm install\n```\n\nInstall Python image-watermark dependencies:\n\n```bash\npip install -r blind_watermark/requirements.txt\n```\n\nStart the development app:\n\n```bash\nnpm run dev\n```\n\nRun TypeScript checks:\n\n```bash\nnpm run typecheck\n```\n\nRun Python image-watermark tests:\n\n```bash\npython -m unittest discover -s blind_watermark/tests\n```\n\nInstall ML training dependencies only when you need to train or export candidate neural models:\n\n```bash\npip install -r blind_watermark/requirements-ml.txt\n```\n\n## Build\n\n```bash\n# Windows\nnpm run build:win\n\n# macOS\nnpm run build:mac\n\n# Linux\nnpm run build:linux\n```\n\nBuild the Python image-watermark helper:\n\n```bash\nnpm run build:python\n```\n\nThe packaged helper is written to `resources/bin/bwm_helper.exe` and included by `electron-builder`.\n\n## Windows Helper Scripts\n\n- `start.bat`: interactive launcher for development and preview workflows.\n- `pack.bat`: one-click Windows packaging script that checks the environment, installs dependencies, builds the Python helper, and runs `electron-builder`.\n- `build.bat`: compatibility wrapper that delegates to `pack.bat` when available.\n\n## Repository Layout\n\n```text\nLuminCrypt/\n|-- src/\n|   |-- main/           # Electron main process, security policy, IPC\n|   |-- preload/        # Context-isolated preload bridge\n|   `-- renderer/       # React UI and TypeScript logic\n|       |-- core/       # Text watermarking and Unicode detection\n|       `-- components/ # React components\n|-- blind_watermark/\n|   |-- rwm_engine.py   # Image blind watermark engine\n|   |-- bwm_helper.py   # CLI bridge used by Electron\n|   |-- mlwm/           # MLWM neural watermark training, export, and inference modules\n|   `-- tests/          # Python unit tests\n|-- configs/mlwm/       # MLWM training, export, and evaluation configs\n|-- docs/mlwm/          # MLWM architecture, training, and traceability docs\n`-- resources/          # Static assets, packaged binaries, and promoted ONNX models\n```\n\n## MLWM v1 Alpha\n\nMLWM v1 is a learning-assisted robust image watermark path for short text or ID payloads. It combines deterministic payload framing, CRC and Reed-Solomon recovery, classical synchronization ideas, lightweight PyTorch encoder/decoder models, and ONNX Runtime inference for desktop use.\n\nUseful references:\n\n- [MLWM Architecture](docs/mlwm/architecture.md)\n- [MLWM Training](docs/mlwm/training.md)\n- [MLWM Traceability](docs/mlwm/traceability.md)\n- [Benchmark Protocol](docs/mlwm/benchmark_protocol.md)\n\n## Search Keywords\n\nUnicode steganography, Unicode watermark, invisible watermark, AI watermark detection, zero-width character detector, homoglyph detection, BiDi control detector, text watermarking, blind image watermark, robust image watermarking, digital watermarking, image forensics, content provenance, Electron security tool.\n\n## License\n\nLuminCrypt is released under the **GPL-3.0** license. See [LICENSE](LICENSE).\n\nThe image watermark engine includes customization based on the open-source [blind_watermark](https://github.com/guofei9987/blind_watermark) project. See [NOTICE](NOTICE) for attribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceq151%2Flumincrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceq151%2Flumincrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceq151%2Flumincrypt/lists"}