birdyee/BirdyHide

GitHub: birdyee/BirdyHide

Stars: 1 | Forks: 2

# BirdyHide — 离线隐写与加密工具箱 将任意文件加密后藏入图片,外观无异常,取回时需密码。完全运行在您的浏览器中,不上传任何数据,关闭页面即销毁所有痕迹。 **在线体验地址**(GitHub Pages 已上线): https://birdyee.github.io/BirdyHide/ ## 为什么选择 BirdyHide? - 军事级加密:内核使用 AES-256-GCM 认证加密,密钥通过 PBKDF2 派生(迭代次数可选 25 万 ~ 100 万次),即使图片被公开,没有密码也无法解密。 - 任意文件类型:支持文档、压缩包、音视频、可执行文件等,且可一次性打包多个文件,解密后逐一下载或一键打包下载。 - 三种隐写模式:经典模式(适合日常使用,将加密后的数据放入 PNG/JPEG 的元数据或文件末尾);像素隐写(实验室)提供普通 LSB(1/2/4 位/通道)、自适应 LSB(高纹理区嵌入,抗 RS 检测)、多图分卷(超大文件分散到多张 PNG 中)以及散布模式(数据随机分布,增强隐蔽性)。 - 隐私优先:密码仅在内存中使用,离开页面后立即清除;复制密码后 30 秒自动清空剪贴板;所有中间缓冲区使用后随机覆写。 - 完全离线:单 HTML 文件,无需网络,不收集任何统计数据,不依赖第三方服务器。 - 移动端友好:触摸优化,支持 Android/iOS 浏览器,并提供下载链接兼容层解决部分定制浏览器无法下载 blob 文件的问题。 ## 快速上手 ### 1. 获取工具 直接下载 index.html 文件到本地,双击用浏览器打开(推荐 Chrome / Edge / Firefox 最新版)。 ### 2. 藏入文件(加密 + 隐写) 1. 点击“藏入文件”卡片(默认已选中)。 2. 选择一张封面图片(强烈建议使用 PNG 格式,避免数据损坏风险)。 3. 点击“要隐藏的文件”区域,选择一个或多个任意文件(可重复添加,解密时会自动打包)。 4. 设置密码(至少 4 位),可点击“随机生成”获得 20 位强密码。 5. (可选)调整加密强度:高强度(100 万次迭代)更安全但稍慢;标准(50 万次)为默认平衡。 6. 点击“开始加密”,等待处理完成,最后点击下载按钮保存隐写图片。 ### 3. 取出文件(解密 + 提取) 1. 切换到“取出文件”卡片。 2. 上传之前生成的隐写图片(PNG 或 JPEG)。 3. 输入加密时使用的密码。 4. 点击“开始解密”,工具会验证密码并还原文件,然后提供下载链接(若为多个文件,会列出所有文件并支持一键打包 ZIP)。 ### 4. 高级功能(像素隐写实验室) 如果您需要更大的隐藏容量或更强的抗检测能力,可以进入“像素隐写”卡片。上传多张载体图片(PNG 或 JPG,JPG 会自动转为 PNG),然后选择秘密文件。调整写入精度(1 位最隐蔽,4 位容量最大),并根据需要开启自适应阈值、散布模式、预压缩等高级选项。系统会自动估算容量并选择最合适的策略。提取时只需将所有输出图片(或 ZIP 包)上传到“取出文件”区域,输入密码即可还原。 提示:经典模式与像素隐写模式相互独立,用哪种方式藏入,就必须用哪种方式取出。 ## 安全与隐私保障 - 内存安全:所有明文、密钥、中间缓冲区在使用后立即执行“随机覆盖 + 全零”两步擦除。 - 剪贴板保护:复制生成的密码后,30 秒自动清空剪贴板(写入空格)。 - 页面失焦模糊:切换到其他标签页时,敏感内容自动模糊,防止旁观者窥视。 - 静止超时锁屏:10 分钟无任何操作,自动隐藏内容(点击任意位置恢复)。 - 离开页面清场:刷新或关闭浏览器前,自动清空所有密码字段、吊销下载链接、释放 Blob URL。 - 防 iframe 劫持:检测到页面被嵌入 iframe 时,强制跳出并显示警告。 - 错误消息脱敏:所有异常输出过滤路径分隔符并截断长度,避免泄露文件系统信息。 - 无后门承诺:本工具不包含任何远程控制、数据回传、主动联网功能,所有运算均在本地完成。 ## 法律与责任声明 本工具仅限合法的隐私保护、安全研究、教育用途。使用者须严格遵守所在地法律法规,严禁用于隐藏非法信息、侵犯他人权益或逃避法律监管。开发者不承担因滥用本工具而产生的任何直接或间接责任。工具内置完整的免责声明(首次打开时需滚动阅读并同意),请在使用前仔细阅读。 ## 浏览器兼容性 - Chrome / Edge (90+):完全支持,推荐使用。 - Firefox (110+):完全支持,需要较新版本以支持 CompressionStream。 - Safari (15+):大部分功能正常,PNG 隐写需较新版本,部分旧版可能无法处理大文件。 - 其他 WebView(Android 微信等):基本可用,已针对 blob 下载做兼容处理,但大文件可能受限。 如果您的浏览器不支持 CompressionStream,经典模式中的 PNG 隐写将不可用,您可以选择 JPEG 封面并勾选“保持 JPEG 格式”(风险较高),或升级浏览器。 ## 项目结构 index.html 单文件应用,包含所有 HTML/CSS/JS 无需安装、无需构建、无需任何依赖。代码体积约 1 MB(含大量安全注释和功能实现),下载后即可运行。 ## 常见问题 问:为什么强烈推荐使用 PNG 封面? 答:JPEG 是有损压缩格式,任何重新保存(如微信发送、相册备份)都可能破坏隐写数据,导致无法解密。PNG 无损,能完美保留数据。 问:多图分卷提取时提示“分卷不完整”? 答:请确保您上传了该批次生成的全部 PNG 文件(可多次点击“选择文件”累加),缺一张都无法重组数据。 问:密码忘记了怎么办? 答:密码是唯一解密凭证,无法找回。请务必妥善保管。 问:工具会上传我的文件到服务器吗? 答:绝对不会。所有操作都在您本机的浏览器中完成,您甚至可以断开网络后使用。 问:可以商用吗? 答:本项目采用 MIT 许可证,允许您自由使用、修改和分发,但请遵守许可证条款并自行承担相关法律责任。 ## 贡献与反馈 本项目欢迎 Issue 和 Pull Request。如果您发现了安全漏洞或功能缺陷,请通过 GitHub 的 Issues 板块提交(请勿通过邮件或其他私人方式,以保障透明性)。提交前请确保您已阅读并理解工具的免责声明。对于新增功能的建议,请提供清晰的使用场景描述。 ## 许可证 Copyright (c) 2026 Birdy 详见 LICENSE 文件。 ## 致谢 感谢 Web Crypto API 为浏览器提供了原生加密能力。感谢所有测试者和贡献者,让 BirdyHide 不断进化。 BirdyHide – 让隐私保护不留痕迹。完全离线 · 随时可用 · 你掌控一切。
标签:后端开发