{"id":34033331,"url":"https://github.com/jheffat/dpj","last_synced_at":"2026-04-08T12:02:33.907Z","repository":{"id":287309570,"uuid":"964313913","full_name":"jheffat/DPJ","owner":"jheffat","description":"CLI Cryptographic tools","archived":false,"fork":false,"pushed_at":"2025-12-01T03:16:49.000Z","size":98575,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-15T10:18:48.990Z","etag":null,"topics":["aes-128","encryption-decryption","hasing-algorith"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jheffat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-11T02:47:23.000Z","updated_at":"2025-12-01T03:16:53.000Z","dependencies_parsed_at":"2025-05-31T04:55:45.205Z","dependency_job_id":"f33e1008-7786-4489-b2e7-ef77ad7e8756","html_url":"https://github.com/jheffat/DPJ","commit_stats":null,"previous_names":["jheffat/-dpj","jheffat/dpj"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jheffat/DPJ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jheffat%2FDPJ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jheffat%2FDPJ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jheffat%2FDPJ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jheffat%2FDPJ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jheffat","download_url":"https://codeload.github.com/jheffat/DPJ/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jheffat%2FDPJ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31554110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aes-128","encryption-decryption","hasing-algorith"],"created_at":"2025-12-13T19:05:33.556Z","updated_at":"2026-04-08T12:02:33.781Z","avatar_url":"https://github.com/jheffat.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![License](https://img.shields.io/github/license/jheffat/DPJ)\r\n![Repo Size](https://img.shields.io/github/repo-size/jheffat/DPJ)\r\n![Build](https://img.shields.io/pypi/v/dpj)\r\n\r\n```text\r\n ____   ____      _ \r\n|  _ \\ |  _  \\   | |     🌍: https://icodexys.net\r\n| | | || |_) |_  | |     🛠️: https://github.com/jheffat/DPJ\r\n| |_| ||  __/| |_| |     📊: 3.6.0  (06/07/2025)\r\n|____/ |_|    \\___/ \r\n**DATA PROTECTION JHEFF**, a Cryptographic Software.\r\n\r\n```\r\n\r\n# 🔐 DPJ - CLI Data Cryptographic Tool\r\n\r\n**DPJ** is a command-line data encryption tool, an improvement of [Fixor](https://github.com/jheffat/-FiXOR) 2.50(Discontinued). The Name Fixor changed to DPJ \r\n in honor of the my first encryption tool developed in QBasic and Visual Basic (2003–2007), DPJ is faster, AES-Like secure, and packed with new features designed to keep your data safe. Is a lightweight CLI tool, encrypt/decrypt files securely using custom-built methods. Good tool to encrypt your work projects or your sensitive data(documents, PDFs, photos, videos, etc.). --\u003e✨ [Changelog](https://github.com/jheffat/DPJ/blob/main/CHANGELOG.md)\r\n\r\n## ❓Why the name change?\r\n\r\nThe original name, Fixor, was chosen because the first version of the tool used only XOR-based encryption with a fixed key in 2021. As the project evolved to include more advanced cryptographic mechanisms, the name no longer reflected its capabilities.\r\n\r\nDPJ has a deeper significance: it was the name of my first encryption tool [DPJ Basic](https://raw.githubusercontent.com/jheffat/DPJ/main/scrnsht/DPJ%20Basic%20by%20VB.png), created in 2001 with QBASIC(CLI), later in 2005 with VB(GUI). Bringing the name back honors that origin while also marking the maturity of this version.\r\n\r\nThis release marks a turning point — DPJ is no longer a simple XOR tool, but a full encryption system with real IV, linear \u0026 nonlinear complexity...\r\n\r\n\r\n\r\n## 🧾 Features\r\n\r\n- 🔒 **Fast Encrypt \u0026 Decrypt Files**, using custom-built encryption.\r\n- ✳️ **Secure password input with masking** (hidden as you type).\r\n- 🌀 **Nonlinear Transformation Support**, Integrated AES-like S-box, P-box, XOR mixing \u0026 byte inversion. Improves resistance to differential and linear cryptanalysis.\r\n- ⚡ **IV Support**,  Uses a cryptographically secure IV to ensure ciphertext uniqueness, even with the same key and plaintext.\r\n- 🧠 **Choose or Autogenerate Passphrase**, for encryption\r\n- 🚫 **No Overwrites**, a file will not be altered if the provided passphrase is incorrect. DPJ detects if a file is encrypted and prevents redundant encryption.\r\n- 🔐 **KDF Support**, Passphrases are transformed via a `Key Derivation Function` before use, making brute-force attempts extremely difficult.\r\n- 🔑 **Key Schedule Support**, a process that expands the main encryption key(KDF) into multiple round keys used throughout the encryption rounds to enhance security.\r\n- 🧂 **Secure Password Hashing**, stored in encrypted metadata\r\n- 🧬 **Encrypted Metadata with AES**, Used to protect internal config\r\n- 🔍 **File Scan Mode**, to check encryption details\r\n- ✅ **Integrity Check Passed**, A SHA-256-based verification step checks whether the decrypted data matches the original, ensuring the decryption process was successful.\r\n- 🛡️ **HMAC Support**, A SHA-256-based HMAC is generated during encryption and verified during decryption to detect tampering or corruption.\r\n- #️⃣ **Hash tools included**, Hash files/Msg using any theses algorithms (blake2b, sha3_512, sha256, sha1,  sha512, shake_128, shake_256, sha3_256, blake2s, md5), In the absence of a specified algorithm, the default SHA256 will be applied.\r\n\r\n## ☠️Please Note!\r\nI’m using a custom-built encryption scheme that applies multilayer linear and nonlinear transformations. Many of these layers are inspired by real-world cryptographic algorithms such as AES (see more in CHANGELOG.md). For now, this option is intended for educational purposes only until it can be professionally reviewed. I’m currently rebuilding DPJ to support AES encryption as a second option, offering a more secure and reliable method widely used in both industry and cybercrime. The reason I built this tool from scratch(without relying on external modules) is to deepen my understanding of how encryption works, enhance my learning, and improve my problem-solving skills.\r\n\r\n\r\n## 🚀 Performance\r\n\r\nDPJ improves on Fixor with significantly faster encryption and decryption processes, optimized for modern systems and large files.\r\n\r\n## ⚠️ Disclaimer\r\n**DPJ is an encryption tool intended for responsible use.**\r\nBy using this software, you acknowledge and accept the following:\r\n\r\n-You are solely responsible for managing your passwords, keys, and encrypted data.\r\n\r\n-If you lose or forget your passphrase, there is no way to recover your data.\r\nThis is by design, as DPJ does not store or transmit any recovery information.\r\n\r\n-The author(s) of DPJ are not liable for any data loss, damage, or consequences resulting from misuse, forgotten credentials, or failure to follow best security practices.\r\n\r\n**Use at your own risk.**\r\n\r\n## 🔧 Installation\r\n\r\nYou can install DPJ, \r\n  \r\n  ++by cloning this repo:\r\n\r\n```bash\r\ngit clone https://github.com/jheffat/dpj.git\r\ncd dpj\r\npython3 -m pip install\r\n``` \r\n  ++by using pypi [pypi.org/dpj...](https://pypi.org/project/dpj/) or:\r\n```bash\r\npip install dpj\r\n```\r\n  ++By download and install executable for:\r\n\r\n`*Windows`\r\n[DPJ 3.6.0 Installer.exe](https://raw.githubusercontent.com/jheffat/DPJ/main/Bins/DPJ%203.6.0%20Installer.exe)  (Need to setup your anti-virus to allow using this app)\r\n\r\n`*Linux Debian`\r\n[DPJ_360LinuxDeb.deb](https://raw.githubusercontent.com/jheffat/DPJ/main/Bins/DPJ%203.6.0%20Installer.deb) (Link Dead**Fixing...)\r\n\r\n   ```bash\r\n   sudo dpkg -i DPJ_353LinuxDeb.deb\r\n   ```\r\n\r\n\r\n\r\n## 🧪 Usage Examples\r\nEncrypt all files including sub-directories with a key `#R3ds0ftwar3!len3zz`\r\n```bash\r\ndpj -e *.* -r -k #R3ds0ftwar3!len3zz    \r\n```\r\nEncrypt all files with the extension  `.JPG` on the current path `c:\\pictures`\r\n```bash\r\ndpj -e  c:\\pictures\\*.jpg     \r\n```\r\nDecrypt all files including in sub-directories on the current local\r\n```bash\r\ndpj -d *.* -r  \r\n```\r\nscan all files including in sub-directories on the current local \r\n```bash\r\ndpj -s *.* -r  \r\n```\r\nHash all files using all algorithms\r\n```bash\r\ndpj -hs *.* -a all\r\n```\r\nHash a text using md5\r\n```bash\r\ndpj -hs 'Life is Good' -a md5\r\n```\r\n\r\n## 📷 Screenshots\r\n`List of Files ready to be encrypted`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/List%20to%20encrypt.png)\r\n`Encryption Process`\r\n![](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/Encrypting.png)\r\n`Decryption Process`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/Decrypting.png)\r\n`Scanning files encrypted`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/Scaning%20%20encrypted%20file.png)\r\n`Hashing a file`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/hashing%20a%20file.png)\r\n`Hashing a file with all algorithms`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/hashing%20a%20file%20with%20all.png)\r\n`Hashing all files using only the algorithm SHA256`\r\n![Alt text](https://raw.githubusercontent.com/jheffat/-DPJ/main/scrnsht/hashing%20all%20files.png)\r\n\r\n\r\n## 📜 License\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n\r\n\r\n## 🙌 Acknowledgements\r\nDPJ(Data protection Jeff), was my first encryption app crafted in QBasic(CLI) and Visual Basic(GUI) between 2001–2007. This project is a modern revival with more power, speed, and security, thanks to language PYTHON. \r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjheffat%2Fdpj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjheffat%2Fdpj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjheffat%2Fdpj/lists"}