StegCloak 是一个纯 JavaScript 的隐写术模块,采用函数式编程风格设计,通过压缩和加密秘密信息,然后利用特殊的 Unicode 不可见字符将其隐藏在文本中。它可以安全地用于水印字符串、网页上的不可见脚本、社交媒体文本或其他任何隐蔽通信。完全不可见!通过这篇 Medium 文章详细了解其工作原理,或观看我们的演示以了解其功能。

使用 npm(全局安装):
$ npm install -g stegcloak
使用 npm(本地安装以便在程序中使用):
$ npm install stegcloak
$ stegcloak hide
选项:
hide [选项] [秘密] [覆盖文本]
-fc, --fcover <文件> 从文件中提取覆盖文本
-fs, --fsecret <文件> 从文件中提取秘密文本
-n, --nocrypt 如果不需要加密 (默认: false)
-i, --integrity 若需防止篡改的额外安全性 (默认: false)
-o, --output <输出> 将结果输出到文件
-c, --config <文件> 配置文件
-h, --help 显示命令帮助
$ stegcloak reveal
选项:
reveal [消息]
-f, --file <文件> 从文件中提取消息
-cp, --clip 直接从剪贴板复制消息
-o, --output <输出> 将秘密输出到文件
-c, --config <文件> 配置文件
-h, --help 显示命令帮助
STEGCLOAK_PASSWORD 环境变量,若设置,则默认作为密码使用。
配置文件 支持,用于配置 StegCloak CLI 并避免提示。阅读配置文档 此处。
const StegCloak = require('stegcloak');
const stegcloak = new StegCloak(true, false); // 初始化:隐藏时使用加密 (true) 且不使用 HMAC (false)
// 这些参数仅在隐藏时使用
// 之后可通过切换 stegcloak.encrypt 和 stegcloak.integrity 布尔标志更改
HMAC 是一项额外的指纹安全步骤,用于防止文本篡改,并验证收到的消息是否确实由预期的发送者发送。如果数据通过 WhatsApp、Messenger 或任何社交媒体平台传输,这一步骤已经由平台完成!但是,如果您在自己的程序中使用 StegCloak 进行安全传输和检索,可以启用此选项,StegCloak 会处理它。
stegcloak.hide(secret, password, cover) -> stringconst magic = stegcloak.hide("伏地魔回来了", "mischief managed", "这里的 WiFi 不好用!");
// 使用 stegcloak.encrypt 和 stegcloak.integrity 布尔标志进行混淆
console.log(magic); // 这里的 WiFi 不好用!
stegcloak.reveal(data, password) -> stringconst secret = stegcloak.reveal(magic, "mischief managed");
// 自动检测隐藏时是否使用了加密或完整性检查,并相应处理
console.log(secret); // 伏地魔回来了
这篇由 Francesco Soncina 撰写的精彩 博客 展示了如何使用 StegCloak API 为网站上的任何文本加水印。
StegCloak 不解决 Alice-Bob-Warden 问题;它只在人们不注意时有效,而且由于其不可见属性在网络上的出色表现,它确实能很好地实现这一点。它可以安全地用于论坛水印、不可见推文、社交媒体等。请不要在你知道有人正在主动嗅探你的数据(通过数据分析工具查看 Unicode 字符)的情况下使用它。在这种情况下,尽管编码的秘密无法被破译,但事实是守卫者(中间人)知道发生了某种秘密通信,因为他会注意到异常数量的特殊不可见字符。
欢迎提交拉取请求。对于重大更改,请先提出 issue 讨论您想要更改的内容。
MIT - 版权 © 2020 Jyothishmathi CV, Kandavel A, Mohanasundar M
StegCloak 徽标由 Smashicons 设计。