{"id":19552024,"url":"https://github.com/helixform/yafo","last_synced_at":"2025-11-20T05:04:13.891Z","repository":{"id":172433790,"uuid":"646829405","full_name":"Helixform/yafo","owner":"Helixform","description":"Yet another file obfuscator.","archived":false,"fork":false,"pushed_at":"2023-06-28T14:57:22.000Z","size":70,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-28T12:48:32.821Z","etag":null,"topics":["algorithms","cli","encryption","obfuscation","rust","security","tools"],"latest_commit_sha":null,"homepage":"https://docs.rs/yafo/","language":"Rust","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/Helixform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2023-05-29T12:40:25.000Z","updated_at":"2024-08-26T20:25:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd0a34af-9569-4dc3-b482-ea47719d5c28","html_url":"https://github.com/Helixform/yafo","commit_stats":null,"previous_names":["helixform/yafo"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Helixform/yafo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Helixform%2Fyafo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Helixform%2Fyafo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Helixform%2Fyafo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Helixform%2Fyafo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Helixform","download_url":"https://codeload.github.com/Helixform/yafo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Helixform%2Fyafo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285375203,"owners_count":27161007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"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":["algorithms","cli","encryption","obfuscation","rust","security","tools"],"created_at":"2024-11-11T04:16:22.213Z","updated_at":"2025-11-20T05:04:13.872Z","avatar_url":"https://github.com/Helixform.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yafo (Yet Another File Obfuscator)\n\n[![Build CLI](https://github.com/Helixform/yafo/actions/workflows/build_cli.yml/badge.svg?branch=main)](https://github.com/Helixform/yafo/actions/workflows/build_cli.yml)\n\n## Introduction\n\nYafo is a minimalist file obfuscator, which can \"encrypt\" your file with the key derived from a given mnemonic phrase. It provides both CLI and library, so you can use it independently or embedded in your own apps. Yafo uses its own [algorithm](./docs/algorithm-design.md), and the key difference from other encryption algorithms (like AES) is that it's super fast.\n\n## Getting Started\n\nIf you want to use it as a CLI program, you can install it on the supported platforms. Yafo supports various of platforms, and it's currently tested and distributed on the following platforms:\n\n-   macOS\n-   Linux\n-   Windows\n\n### Install with Cargo\n\n```shell\ncargo install yafo --features=cli\n```\n\n### From binaries\n\nDownload the prebuilt binary from [releases](https://github.com/Helixform/yafo/releases) and execute it directly. You can append the executable path to environment variables manually if you want.\n\n### From source\n\nIf you want to build it from source locally, you need Rust installed. Clone the repository and build everything with `cargo`:\n\n```shell\ncargo install --locked --features=cli --path .\n```\n\nIf you don't need the CLI binary, you can just compile the library itself:\n\n```shell\ncargo build --release\n```\n\n## CLI Usage\n\nEncrypt a file with the given mnemonic phrase:\n\n```shell\nyafo encrypt --key \u003cYOUR_KEY\u003e /path/to/file-to-encrypt\n```\n\nThe file will be encrypted **in-place**. And after encryption, a `.yafo` extension will be appended to the filename of the given file.\n\nTo decrypt it:\n\n```shell\nyafo decrypt --key \u003cYOUR_KEY\u003e /path/to/file-to-decrypt\n```\n\nNote that any file will be treated transparently, whether it's encrypted or not. It means `yafo` will not check whether the given file is ever encrypted when you execute `yafo decrypt`. And you can also encrypt the same file multiple times with `yafo encrypt`.\n\nFor better performance, you can use `--silent` option to run it without displaying the progress bar.\n\n## FAQ\n\n### What are the possible use cases of it?\n\nThe use cases of Yafo can be various. You can use it to make your messages hard to recognize, prevent your files against hash matching, and bypass the Internet censorship. However, Yafo as a tool is not responsible for your illegal usages. You should use it at your own risk.\n\n### Why not using AES or other algorithms?\n\nThe main purpose of Yafo is data obfuscation, not encryption. AES and other algorithms can be complex and less efficient. The algorithm of Yafo is designed to be fast, and security is not the top priority.\n\n### Is it secure to encrypt important data?\n\nNo, the algorithm of Yafo is not designed for strong encryption, and its security is also not validated. Additionally, you should regard the key as a seed, which is used to add randomness to the algorithm. It's still possible to decrypt a file using a key other than the original one for encryption.\n\n### What if I forgot my key?\n\nUnfortunately, there is no metadata attached to the encrypted file. Thus the key is dropped once the encryption process is finished. It's also impossible to test whether the decrypted file is valid. Simply put, if you lose your key, you lose your data.\n\n## License\n\nCopyright (c) 2023 Yafo Developers.\n\nSource code and its algorithm are available under the terms of GPLv3 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelixform%2Fyafo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelixform%2Fyafo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelixform%2Fyafo/lists"}