{"id":23185843,"url":"https://github.com/thesupercd/rainbow_table_builder","last_synced_at":"2025-04-05T04:44:20.796Z","repository":{"id":266432162,"uuid":"898330650","full_name":"TheSUPERCD/Rainbow_Table_Builder","owner":"TheSUPERCD","description":"A high performance CUDA-based GPU accelerated Rainbow-Table maker, written in C++ without any external libraries or dependencies needed. ","archived":false,"fork":false,"pushed_at":"2025-03-28T07:44:34.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T08:28:42.908Z","etag":null,"topics":["cpp","cryptography","cuda","hash-table","hashing","parallel-processing","rainbow-table","sha3","sha3-512","uuid"],"latest_commit_sha":null,"homepage":"","language":"C++","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/TheSUPERCD.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2024-12-04T07:50:52.000Z","updated_at":"2025-03-28T07:56:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"49a96a71-b458-4bd2-a679-11ac40824422","html_url":"https://github.com/TheSUPERCD/Rainbow_Table_Builder","commit_stats":null,"previous_names":["thesupercd/rainbow_table_builder"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSUPERCD%2FRainbow_Table_Builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSUPERCD%2FRainbow_Table_Builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSUPERCD%2FRainbow_Table_Builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSUPERCD%2FRainbow_Table_Builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheSUPERCD","download_url":"https://codeload.github.com/TheSUPERCD/Rainbow_Table_Builder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289398,"owners_count":20914464,"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","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":["cpp","cryptography","cuda","hash-table","hashing","parallel-processing","rainbow-table","sha3","sha3-512","uuid"],"created_at":"2024-12-18T10:13:01.952Z","updated_at":"2025-04-05T04:44:20.772Z","avatar_url":"https://github.com/TheSUPERCD.png","language":"C++","readme":"# Rainbow Table Builder\n\nA high-performance Rainbow Table generator that supports both CPU and GPU-based hash computation for UUIDs using SHA3. This tool is designed to efficiently process large volumes of UUIDs and generate their corresponding hash values.\n\n## Features\n\n- Dual implementation support:\n  - CPU-based hash computation using OpenMP for parallelization\n  - GPU-based hash computation using CUDA for massive parallelization\n- Custom SHA3 hashing algorithm that runs on NVIDIA GPUs in parallel\n- Compact binary output format option for efficient storage\n- Configurable batch processing for optimized memory usage\n- File comparison utility to verify hash outputs with CPU-based version\n- Built-in UUID processing capabilities\n\n## Prerequisites\n\nTo build and run this project, you need:\n\n- C++ compiler with OpenMP support (for CPU implementation)\n- CUDA toolkit and NVCC (for GPU implementation)\n- Python 3 (optional - for dataset generation)\n- Make build system\n\n## Building\n\nUse the provided Makefile to build the project:\n\n```bash\n# Build all targets (CPU, GPU, and file comparator)\nmake all\n\n# Build specific targets\nmake          # Build CPU version only\nmake gpu      # Build GPU version only\nmake filecomp # Build file comparator only\n\n# Build static CUDA version\nmake static\n\n# Clean built files\nmake clean\n```\n\n## Usage\n\n1. Generate test UUID dataset (optional - a sample dataset is already present in this repository):\n```bash\nmake dataset\n```\n\n2. Run the hash generator:\n```bash\n# CPU Version\n./binary \u003cinput_file\u003e\n\n# GPU Version\n./binary_cuda \u003cinput_file\u003e\n```\n\n3. Compare output files (if needed):\n```bash\n./filecomp \u003cfile1\u003e \u003cfile2\u003e\n```\n\n## Output Formats\n\nThe tool supports two output formats (needs to be toggled in the main source file):\n\n1. Text Format (default): Newline-delimited hex strings\n2. Binary Format (compressed): Raw byte format for efficient storage\n\nOutput files are saved in the `hashed_output` directory with the following naming convention:\n- CPU Version: `\u003cinput_filename\u003e_hashed_byCPU.[txt|bin]`\n- GPU Version: `\u003cinput_filename\u003e_hashed_byGPU.[txt|bin]`\n\n## Implementation Details\n\n- Uses SHA3 (Keccak) hashing algorithm\n- Processes UUIDs in configurable batch sizes for memory efficiency\n- GPU implementation utilizes CUDA thread blocks for parallel processing\n- Supports endianness conversion for cross-platform compatibility\n\n## Performance Optimization\n\nThe implementation includes several optimizations:\n- Batch processing to minimize I/O, as well as CPU\u003c-\u003eGPU communication overhead\n- OpenMP parallelization for CPU version\n- CUDA-based parallel processing for GPU version\n- Compact binary output option for reduced storage requirements\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesupercd%2Frainbow_table_builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesupercd%2Frainbow_table_builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesupercd%2Frainbow_table_builder/lists"}