FraunhoferISST/Innamark

GitHub: FraunhoferISST/Innamark

由 Fraunhofer 研究所开源的文本隐写与水印库,通过空白字符替换技术在保持原文外观和长度不变的前提下隐蔽嵌入任意数据。

Stars: 20 | Forks: 3

Innamark (Invisible Watermarking) logo

GitHub Issues GitHub Pull Requests GitHub repo size GitHub commit activity] Documentation GitHub Repo stars
## 目录 - [关于](#about) - [文档](#-documentation) - [结构](#-structure) - [开始使用](#-getting-started) - [Web 界面](#webinterface) - [系统前置条件](#system-prerequisites) - [快速开始](#quick-start) - [贡献](#-contributing) - [许可证](#-license) - [引用本作品](#-cite-this-work) - [团队与资金](#-team--funding) ## 关于 *隐形水印* (Innamark) 项目提供**隐写术/水印**解决方案,以隐蔽且稳健的方式在文本资产(如文档、电子邮件、聊天消息等)中隐藏数据。 本仓库包括: - 一个**Kotlin 多平台库**,可轻松构建并集成到 Kotlin、Java 和 JavaScript 项目中,提供水印嵌入和提取功能 - 一个**Web 界面**,作为用于嵌入和提取水印的 GUI 组件 - 一个**命令行界面 (CLI)**,作为用于水印嵌入和提取的终端解决方案 Innamark 的主要特性: - **隐形**:人类无法区分原始文本和带水印的文本 - **稳健**:能在不同应用程序中的复制粘贴和格式更改后存活 - **长度保持**:字符数保持不变,不使用零宽字符 以下示例使用我们的 Web 界面和 Kotlin 库在文本中隐藏 "Innamark" 水印,通过电子邮件发送,然后在接收方验证并提取水印: ![Web 界面动画示例](https://raw.githubusercontent.com/FraunhoferISST/Innamark/main/docs/static/img/webinterface-demo.gif) 核心的 Innamark 水印算法由来自 [Fraunhofer 软件与系统工程研究所](https://www.isst.fraunhofer.de/en.html) 的德国研究人员开发,作为[科学期刊论文](https://doi.org/10.1109/ACCESS.2025.3583591)发表,并申请了[德国](https://patents.google.com/patent/DE102023125012A1)和[国际专利](https://patents.google.com/patent/WO2025056772A1/en)。 ## 📖 文档 从使用到开发的所有信息都收集并提供在我们的[文档](https://fraunhoferisst.github.io/Innamark/)中。 ## 📁 结构 本项目采用[单体仓库方法](https://en.wikipedia.org/wiki/Monorepo),由位于不同子文件夹中的不同部分组成。核心是一个**水印库**,位于 `watermarker` 文件夹中,被本仓库附带的其他组件(如 CLI 工具或 Web 界面)使用。每个部分都有自己的 `README` 文件以获取更多信息。 ### 子文件夹概述 - **cli**:一个命令行界面,支持直接通过 shell/终端进行水印处理 - **docs**:基于 [Docusaurus](https://github.com/facebook/docusaurus) 框架构建的所有部分的[文档](https://fraunhoferisst.github.io/Innamark/) - **samples**:不同的带水印和无水印文件示例,主要用于测试 - **watermarker**:仓库的核心部分:一个 Kotlin 水印库,用于在载体文本中隐藏文本(水印)。该库可在 JVM (Java) 和 JavaScript (JS) 平台上运行 - **webinterface**:一个前端 / GUI,用于在浏览器中使用水印功能,使用 [KVision](https://github.com/rjaros/kvision) 框架构建 ## 🚀 开始使用 每个组件的详细入门指南均描述在相应子文件夹下专用的 `README` 文件中。 ### Web 界面 下面将介绍如何轻松启动使用我们 Kotlin 水印库的 Web 界面。 #### 系统前置条件 运行 Web 界面需要以下内容: - [Docker](https://docs.docker.com/engine/install/) - [Docker Compose](https://docs.docker.com/compose/install/) #### 快速开始 要运行 Web 界面,只需将仓库在本地克隆,并在项目根目录下运行 `docker-compose.yml` 文件: ``` $ git clone https://github.com/FraunhoferISST/Innamark.git $ cd Innamark $ docker compose up ``` 启动完成后,尝试在 http://localhost:8080 访问 Web 界面 ## ✍️ 贡献 我们非常感谢您对本项目的贡献!每次贡献都需要接受《企业贡献者许可协议》,该协议位于 `CLA.md` 文件中。有关更多详细信息,请参阅 `CONTRIBUTING.md` 文件。 ## ⚖️ 许可证 本作品根据 Fraunhofer 许可证(基于 MIT 许可证)授权。有关更多信息,请参阅 `LICENSE` 文件。 ## 📝 引用本作品 Innamark 核心水印算法的主要概念在一篇开放获取的 *IEEE Access* 期刊出版物中进行了介绍,并与相关工作进行了比较: - Hellmeier 等人, "Innamark: A Whitespace Replacement Information-Hiding Method", 2025, IEEE Access, vol. 13, pp. 123120-123135, doi: [10.1109/ACCESS.2025.3583591](https://doi.org/10.1109/ACCESS.2025.3583591) 要在 LaTeX/BibTeX/BibLaTeX 中引用该期刊文章: ``` @article{Hellmeier.2025, author = {Hellmeier, Malte and Norkowski, Hendrik and Schrewe, Ernst-Christoph and Qarawlus, Haydar and Howar, Falk}, title = {{Innamark: A Whitespace Replacement Information-Hiding Method}}, year = {2025}, journal = {{IEEE Access}}, volume = {13}, pages = {123120--123135}, issn = {2169-3536}, doi = {10.1109/ACCESS.2025.3583591} } ``` ## 👨👩 团队与资金 ### 活跃成员 - [Malte Hellmeier](https://github.com/mhellmeier) (Fraunhofer ISST) - [Haydar Qarawlus](https://github.com/hqarawlus) (Fraunhofer ISST) - [Joris Schiphorst](https://github.com/Schiphorst-ISST) (Fraunhofer ISST) - [Ernst-Christoph Schrewe](https://github.com/eschrewe) (Fraunhofer ISST) ### 往期成员 - [Hendrik Norkowski](https://github.com/hnorkowski) - [David Gemen](https://github.com/gemdav) ### 资金 项目的初始版本是在[物流与 IT 卓越中心](https://ce-logit.com/)的范围内创建的,同时也得到了 [Fraunhofer 认知互联网技术卓越中心 CCIT](https://www.cit.fraunhofer.de/en.html) 和 [AHEAD(作为 Fraunhofer 的深度科技孵化器)](https://www.ahead.fraunhofer.de/en.html) 的支持。
标签:CMS安全, DNS 反向解析, DNS解析, Fraunhofer, GUI开发, JavaScript, JS文件枚举, Kotlin, Kotlin Multiplatform, meg, Steganography, Watermarking, Web界面, 不可见水印, 信息加密, 信息安全, 信息隐藏, 开源项目, 数字水印, 数据可视化, 数据嵌入, 数据提取, 文本处理, 文本水印, 文本隐写, 本体建模, 请求拦截, 跨平台开发, 软件库, 隐写术