尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Decayfmt:每次打开都会自我损坏的文件格式,不稳定性参数可控损坏程度

Decayfmt:每次打开都会自我损坏的文件格式,不稳定性参数可控损坏程度 导航菜单包含两个链接根目录链接、登录链接。外观设置平台AI 代码创作有三个相关链接GitHub Copilot 可借助 AI 编写优质代码GitHub Copilot 应用能从问题到合并实现智能代理MCP Registry 可集成外部工具。开发者工作流包含多个相关链接Actions 可自动化任何工作流Codespaces 是即时开发环境Issues 可规划和跟踪工作Code Review 用于管理代码变更Code Quality 能在合并时确保代码质量。应用安全有三个相关链接GitHub Advanced Security 可发现并修复漏洞Code security 能在构建过程中保障代码安全Secret protection 可防患于未然阻止密钥泄露。探索包含多个相关链接可了解为何选择 GitHub可查看文档、博客、更新日志还可进入市场。此外有查看所有功能的链接。解决方案按公司规模划分有企业版、中小团队版、初创企业版、非营利组织版的相关链接。按用例划分包含应用现代化、DevSecOps、DevOps、CI/CD 等用例的相关链接还有查看所有用例的链接。按行业划分有医疗保健、金融服务、制造业、政府机构等行业的相关链接以及查看所有行业的链接。此外有查看所有解决方案的链接。资源按主题探索可按 AI、软件开发、DevOps、安全等主题探索还有查看所有主题的链接。按类型探索包含客户案例、活动与网络研讨会、电子书与报告、商业洞察、GitHub 技能等类型的相关链接。支持与服务有文档、客户支持、社区论坛、信任中心、合作伙伴等相关链接。此外有查看所有资源的链接。开源社区有 GitHub Sponsors 资助开源开发者的链接。项目包含 Security Lab、Maintainer Community、Accelerator、GitHub Stars、Archive Program 等项目的相关链接。仓库有主题、热门趋势、集合等相关链接。企业版企业解决方案有企业平台由 AI 驱动的开发者平台的链接。可用插件有 GitHub Advanced Security 的企业级安全特性、Copilot for Business 的企业级 AI 特性、高级支持的企业级 7×24 小时支持的链接还有定价链接。搜索 /有登录和注册链接还有外观设置相关提示如在其他标签页登录、退出登录、切换账户的操作提示。仓库信息显示仓库为 [aravpanwar ](/aravpanwar) / **[decayfmt](/aravpanwar/decayfmt) ** 公开有通知、复刻、加星等操作链接还有代码、问题、拉取请求、操作、项目、安全与质量、洞察等导航选项有主分支、分支、标签等相关内容可前往文件查看代码还有最新提交、历史记录等信息以及文件夹和文件的表格展示。此外有查看所有文件的链接还有仓库文件导航相关内容。decayfmt 介绍decayfmt 在 [This Week in Rust #660] 中被推荐是一种每次打开都会自我损坏一点的文件格式。每次打开文件时在看到文件内容之前磁盘上的文件就会根据文件名中预设的程度永久性地损坏且仅依靠文件本身无法恢复每次读取都会破坏其中更多的内容。有相关的图像展示同一图像以四种不稳定性值编码并依次打开同时以四种速度损坏的情况。文件类型有 .idcy 用于图像如 photo.idcy3.tdcy 用于文本如 note.tdcy7x 是文件名中的正整数即不稳定性参数x 值越高每次打开时文件的损坏程度就越大。见证文件损坏通过网格图展示了一张图像分别以不同 x 值编码并以相同次数打开的情况不同的 x 值对应不同的损坏速率。还分别给出了原始干净的图像以及不同 x 值下打开 1 次和 3 次后的图像展示。当 x3 时图像会在多次打开后逐渐损坏而当 x10 时打开一次后图像几乎就无法辨认打开三次后则完全变成了噪点。文本文件的损坏方式相同给出了以 x1 编码的句子在几次打开后的打印结果文件损坏时只会替换为可打印字符因此文本会变成看似可读但实际无意义的内容而不是二进制噪声。这是什么不是什么decayfmt 是一种基于数学而非加密技术的社会契约它不是加密手段不是数字版权管理DRM也不是安全删除工具。文件的损坏是真实且仅依靠文件本身无法恢复的但任何拥有备份或使用十六进制编辑器的人都可以绕过这种损坏。如果想保留原始文件需做好备份如果不想让任何人恢复文件就不要备份。安装使用 cargo如果已经安装了 Rust 工具链最快的安装方式是通过已发布的 crate使用命令 cargo install decayfmt。从发布版本安装从发布页面下载适合平台的二进制文件并将其添加到系统的 PATH 环境变量中该程序无需安装运行时依赖。在 macOS 上二进制文件未经过签名首次运行时可能会被 Gatekeeper 阻止可以右键点击该文件并选择“打开”或者使用 xattr -d com.apple.quarantine decayfmt 命令清除隔离标志。从源代码安装这需要安装 Rust 工具链使用命令 cargo build --release生成的二进制文件位于 target/release/decayfmt。快速开始无需图像或示例文件可在终端中见证文件的损坏过程使用命令 echo this sentence is about to start dying note.txtdecayfmt encode --input note.txt --output note.tdcy8decayfmt open note.tdcy8。不稳定性参数 x 来自输出文件名多运行几次最后一行命令每次打开时都会看到句子进一步损坏。文件损坏会在显示内容之前写入磁盘因此无法恢复。较高的 x 值会使文件快速损坏而较低的 x 值则会使文件在多次打开后缓慢损坏。在 Windows PowerShell 中使用 重定向会写入 UTF - 16 编码的文件这会被 decayfmt 拒绝可以使用 Set-Content note.txt this sentence is about to start dying 命令来创建文件cmd.exe 和 PowerShell 7 则可以正常使用上述命令。使用方法编码将源图像或文本文件转换为 decayfmt 文件编码过程不会损坏文件新生成的文件是完整的。使用命令 decayfmt encode --input photo.png --output photo.idcy3decayfmt encode --input note.txt --output note.tdcy7。文件类型和不稳定性参数 x 都由输出文件名决定idcy 表示图像文件tdcy 表示文本文件后面跟着的正整数即为 x 值。如果输出文件名无法正常打开程序会拒绝写入。图像文件会解码为原始的 RGBA 格式文本文件必须是有效的 UTF - 8 编码。打开打开一个 decayfmt 文件这会直接在磁盘上损坏文件然后显示损坏后的结果。图像文件会使用系统默认的图像查看器打开文本文件会在终端中打印出来如果没有终端则会使用默认的文本编辑器打开。使用命令 decayfmt open photo.idcy3decayfmt open note.tdcy7。x 值从文件名中读取因此重命名文件会改变下一次打开时文件的损坏程度。文件损坏的原理每次打开文件时会根据 x 值计算每个字节的损坏概率公式为 p 1 - exp(-x / 10)。因此x 1 时每次打开大约会损坏 9.5% 的有效字节x 5 时大约为 39%x 10 时大约为 63%。随机数由基于操作系统熵的加密安全生成器生成因此同一状态下的两次打开会呈现不同的损坏效果且损坏序列无法重现。对于图像红色、绿色和蓝色通道会分别以概率 p 独立损坏Alpha 通道不会受到影响因此损坏表现为颜色噪点而不是透明孔洞对于文本每个字节有概率 p 被随机的可打印 ASCII 字节替换该过程基于字节而非字符进行因此在 x 值较高时可能会破坏 UTF - 8 编码查看器会尽力渲染并将无法解析的部分替换为替代字符损坏只会替换字节不会插入或删除因此文件长度和未被触及字节的位置会保持不变内容会逐渐损坏但结构不会改变原始字节长度始终可以恢复在 x 值较低时单词长度和布局基本不受影响空格不会受到特殊保护它们会和其他字节以相同的速率被替换随着 x 值的增加而逐渐消失。契约规则文件损坏会在打开时写入磁盘然后再显示内容写入后发生的崩溃或强制终止操作不会撤销损坏每次打开文件都会导致一定程度的损坏只读文件会被拒绝打开并显示错误信息不会进行显示因为免费读取会破坏契约规则编码后文件头不会被修改只有文件内容会逐渐损坏文件中不包含任何状态信息没有任何恢复机制。局限性这是一种社会契约而非加密技术备份可以完全绕过文件损坏机制有心之人可以使用十六进制编辑器篡改文件它不是安全删除工具也不提供加密保证显示文件时会将损坏后的结果写入临时文件供系统查看器使用最新的临时文件会一直存在直到下一次打开文件时被覆盖如果没有下一次打开操作临时文件会一直保留因此在这之前最后一次显示的文件状态仍可恢复同时打开两个文件可能会产生竞争问题并发打开文件时的损坏程度可能比顺序打开时要小v1 版本仅支持图像和文本文件不支持音频、视频或其他二进制格式。许可证decayfmt 采用 MIT 许可证发布。关于decayfmt 是一种用 Rust 实现的文件格式每次打开文件都会永久性地损坏它在没有备份的情况下文件的损坏是不可恢复的。还列出了主题、资源、加星数、关注者、复刻数等信息以及报告仓库的链接。还有发布版本、软件包、贡献者、使用的编程语言等相关内容以及页脚导航相关内容目前无法执行某些操作。
返回列表