{"id":22941669,"url":"https://github.com/samukiszhsd/layereducationtest","last_synced_at":"2025-04-01T20:49:22.623Z","repository":{"id":263720737,"uuid":"891282540","full_name":"SAMUKISZHSD/LayerEducationTest","owner":"SAMUKISZHSD","description":"Script para descobrir combinações ocultas em uma URL que geram um hash MD5 específico, utilizando força bruta.","archived":false,"fork":false,"pushed_at":"2024-11-20T03:55:18.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T13:44:43.035Z","etag":null,"topics":["hashing-algorithm","md5-hash","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SAMUKISZHSD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-11-20T03:48:09.000Z","updated_at":"2024-11-20T03:59:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"f23ce8fd-f1c9-45b7-a061-916e3c6fe2eb","html_url":"https://github.com/SAMUKISZHSD/LayerEducationTest","commit_stats":null,"previous_names":["samukiszhsd/layereducationtest"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAMUKISZHSD%2FLayerEducationTest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAMUKISZHSD%2FLayerEducationTest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAMUKISZHSD%2FLayerEducationTest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SAMUKISZHSD%2FLayerEducationTest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SAMUKISZHSD","download_url":"https://codeload.github.com/SAMUKISZHSD/LayerEducationTest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709914,"owners_count":20821298,"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":["hashing-algorithm","md5-hash","python"],"created_at":"2024-12-14T13:44:39.746Z","updated_at":"2025-04-01T20:49:22.602Z","avatar_url":"https://github.com/SAMUKISZHSD.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio Inicial - LAYER EDUCATION\n\nEste projeto foi desenvolvido para resolver um desafio de força bruta em que é necessário descobrir combinações ocultas em uma URL, de forma que a URL completa gere um hash MD5 específico. O desafio envolve conhecimento de hashing, programação e geração de combinações.\n\n# **Desafio de Descoberta de URL por Hash MD5**\n\nEste projeto foi desenvolvido para resolver um desafio de força bruta em que é necessário descobrir combinações ocultas em uma URL, de forma que a URL completa gere um hash MD5 específico. O desafio envolve conhecimento de hashing, programação e geração de combinações.\n\n## **Descrição**\n\nDado:\n- Uma URL base com partes substituíveis (marcadas por `{}` ou `*`).\n- Um hash MD5 específico fornecido.\n\nObjetivo:\n- Descobrir quais combinações de caracteres (alfanuméricos) substituem os placeholders na URL base, de forma que a URL completa gere o hash MD5 fornecido.\n\nExemplo de URL base:\n```\nhttps://forms.layers.education/processo-seletivo-2aae6c3*c94fcfb415*be95*408b9ce91*e846ed\n```\n\nHash MD5 fornecido:\n```\n6cc89c7e40021e6c2cb4fb1543c0ba04\n```\n\nResultado esperado:\n- Uma URL válida onde o hash MD5 coincide com o fornecido.\n\n## **Como Funciona**\n\n1. O script gera combinações possíveis de caracteres (`a-z` e `0-9`) para preencher os espaços marcados na URL base.\n2. Calcula o hash MD5 da URL gerada.\n3. Compara o hash calculado com o hash fornecido.\n4. Retorna a URL correta assim que encontra uma correspondência.\n\n## **Requisitos**\n\n- Python 3.6 ou superior\n- Biblioteca `hashlib` (já incluída na instalação padrão do Python)\n\n## **Como Executar**\n\n1. Certifique-se de que o Python está instalado no seu computador.\n   - [Download Python](https://www.python.org/)\n\n2. Clone ou baixe este repositório.\n\n3. Abra o terminal ou prompt de comando e navegue até o diretório do projeto.\n\n4. Execute o script com o comando:\n   ```bash\n   python descobrir_url.py\n   ```\n\n5. O script exibirá a URL descoberta, se encontrada:\n   ```\n   URL descoberta: https://forms.layers.education/processo-seletivo-2aae6c3abc...e846ed\n   ```\n   \n## **Personalização**\n\n- **Modifique o tamanho das combinações:** \n  Edite a variável `tamanho_comb` no código para ajustar o número de caracteres nos placeholders da URL.\n  ```python\n  tamanho_comb = 1  # Número de caracteres para cada placeholder\n  ```\n\n- **Ajuste os caracteres possíveis:** \n  Por padrão, o script testa `a-z` e `0-9`. Para adicionar mais caracteres, edite:\n  ```python\n  for char in \"abcdefghijklmnopqrstuvwxyz0123456789\":\n  ```\n\n## **Limitações**\n\n- O algoritmo utiliza força bruta, o que pode levar tempo dependendo do número de combinações.\n- Para espaços de busca muito grandes, considere técnicas de otimização (como paralelismo ou redução do espaço de busca).\n\n## **Estrutura do Código**\n\n- **`base_url`**: Contém a URL base com placeholders `{}`.\n- **`gerar_combinacoes`**: Função recursiva que gera todas as combinações possíveis.\n- **`encontrar_url`**: Testa cada combinação, substitui na URL e verifica o hash MD5.\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamukiszhsd%2Flayereducationtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamukiszhsd%2Flayereducationtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamukiszhsd%2Flayereducationtest/lists"}