Search the Community

Showing results for tags 'md5'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 2 results

  1. Olá, estou fazendo um trabalho para implementar um código de força bruta utilizando pthereads no code blocks no Linux, só que na hora de compilar está dando erro: "||error: ld returned 1 exit status|" Alguém pode me dar uma luz do que fazer ? Será que errei algo na implementação ou nas bibliotecas carregadas do open ssl ? Encontrei muito pouca referência para apoio sobre o assunto na internet. Objetivo dado: implementar, usando threads (por exemplo, a biblioteca pthreads), um programa paralelo para tentar quebrar senhas usando a técnica simples de força-bruta (que testar “todas” as possibilidades). Além disso, os resultados de tempo devem ser comparados usando alguma função de captura do tempo de execução, executada possivelmente em uma máquina multiprocessada (2, 4 núcleos). Arquivo original dado: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/md5.h> #include "timer.h" #define MAX 100 #define MIN_ASCII_PRINTBLE 33 #define MAX_ASCII_PRINTBLE 127 // Função que gera strings aleatórias com caracteres printáveis. int gen_random_string(char string[MAX], int s){ int i, num_char; char c; for(i=0; i<s; i++){ // Calcula a quantidade de caracteres num_char = MAX_ASCII_PRINTBLE-MIN_ASCII_PRINTBLE; // Limita o número aleatorio gerado para que fique // entre MIN_ASCII_PRINTBLE e MAX_ASCII_PRINTBLE c = (char)((rand() % num_char) + MIN_ASCII_PRINTBLE); // Monta a string aleatória string[i] = c; } // Colocar o terminador string[s] = 0; } int main(int argc, char* argv[]) { const char password[] = "123"; // Apenas para testes char string[MAX]; // String gerada unsigned char hash1[MD5_DIGEST_LENGTH]; // hash de password unsigned char hash2[MD5_DIGEST_LENGTH]; // hash de string int i, j; int cont = 0; // contador do numero de colisões unsigned long int N; // Número de repetições int tamanhoMinPalavra; // Tamanho mínimo de string a ser testada int tamanhoMaxPalavra; // Tamanho máximo de string a ser testada double tempo_ini, tempo_fim; printf("Entre com o número de repetições: "); scanf("%lu", &N); printf("Entre com o tamanho mínimo da string: "); scanf("%d", &tamanhoMinPalavra); printf("Entre com o tamanho máximo da string: "); scanf("%d", &tamanhoMaxPalavra); // Tempo inicial tempo_ini = GET_TIME(); // Usa o tempo como semente dos números aleatórios srand(time(NULL)); // Gera o MD5 da senha de teste. // O ideal é passar como entrada o hash já gerado. MD5(password, sizeof(password), hash1); // Controle dos tamanhos das strings for (j=tamanhoMinPalavra; j<=tamanhoMaxPalavra; j++){ // Controle das repetições for (i=0; i<N; i++){ // Gera string aleatória gen_random_string(string, j); // Gera o MD5 da string para comparar com o hash da // senha alvo. MD5(string, j+1, hash2); // Compara os hashes if(strcmp(hash1, hash2) == 0){ printf("Achou: %s\n", string); cont++; } } } tempo_fim = GET_TIME(); // Colisões printf("Colisoes: %d (tempo: %f)\n", cont, tempo_fim - tempo_ini); return 0; } Implementação com pthreads que fiz até agora: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/md5.h> #include "timer.h" #include <pthread.h> #define MAX 100 #define MIN_ASCII_PRINTBLE 33 #define MAX_ASCII_PRINTBLE 127 #define NTHREADS 10 int cont = 0; // contador do numero de colisões unsigned long int N; // Número de repetições int tamanhoMinPalavra; // Tamanho mínimo de string a ser testada int tamanhoMaxPalavra; // Tamanho máximo de string a ser testada const char password[] = "123"; // Apenas para testes char string[MAX]; // String gerada unsigned char hash1[MD5_DIGEST_LENGTH]; // hash de password unsigned char hash2[MD5_DIGEST_LENGTH]; // hash de string // Função que gera strings aleatórias com caracteres printáveis. int gen_random_string(char string[MAX], int s){ int i, num_char; char c; for(i=0; i<s; i++){ // Calcula a quantidade de caracteres num_char = MAX_ASCII_PRINTBLE-MIN_ASCII_PRINTBLE; // Limita o número aleatorio gerado para que fique // entre MIN_ASCII_PRINTBLE e MAX_ASCII_PRINTBLE c = (char)((rand() % num_char) + MIN_ASCII_PRINTBLE); // Monta a string aleatória string[i] = c; } // Colocar o terminador string[s] = 0; } void *PrintHello (void *arg) { int i,j; // Gera o MD5 da senha de teste. // O ideal é passar como entrada o hash já gerado. MD5(password, sizeof(password), hash1); // Controle dos tamanhos das strings for (j=tamanhoMinPalavra; j<=tamanhoMaxPalavra; j++){ // Controle das repetições for (i=0; i<N; i++){ // Gera string aleatória gen_random_string(string, j); // Gera o MD5 da string para comparar com o hash da // senha alvo. MD5(string, j+1, hash2); // Compara os hashes if(strcmp(hash1, hash2) == 0){ printf("Achou: %s\n", string); cont++; } } } pthread_exit(NULL); } int main(int argc, char* argv[]) { pthread_t tid_sistema[NTHREADS]; int i; int arg; double tempo_ini, tempo_fim; printf("Entre com o número de repetições: "); scanf("%lu", &N); printf("Entre com o tamanho mínimo da string: "); scanf("%d", &tamanhoMinPalavra); printf("Entre com o tamanho máximo da string: "); scanf("%d", &tamanhoMaxPalavra); // Tempo inicial tempo_ini = GET_TIME(); // Usa o tempo como semente dos números aleatórios srand(time(NULL)); for(i=0; i<NTHREADS; i++){ printf("Cria a thread %d\n", i); arg = i; if(pthread_create(&tid_sistema[i], NULL, PrintHello, (void*) &arg)) { printf("Erro: pthread_create()"); exit(-1); } } for(i=0; i<NTHREADS; i++){ printf("teste %d\n", i); if(pthread_join(tid_sistema[i], NULL)) { printf("Erro: pthread_join()"); exit(-1); } } tempo_fim = GET_TIME(); // Colisões printf("Colisoes: %d (tempo: %f)\n", cont, tempo_fim - tempo_ini); return 0; }
  2. Olá a todos! De antemão gostaria de me desculpar, sou novo no mundo da programação e talvez não saiba explicar de forma clara minha dúvida, mas vou tentar da melhor maneira possível. Recentemente encontrei um aplicativo (extensão do chrome) que basicamente me ajudaria em alguns sites de apostas (o site apenas aposta itens de um jogo, nada que envolva dinheiro real). O aplicativo basicamente ficaria apostando pontos para a pessoa em uma roleta de forma pré programada por quem esta apostando, por exemplo, apostar de forma aleatória, ou apenas em uma cor, etc. O aplicativo é gratuito, mas também existe um modo pago que é uma versão melhorada com alguns recursos a mais. Após clicar no botão "Premium" Após entrar em contato com o dono do aplicativo, enviar o numero da minha ID e comprar a versão paga, ele me enviou um link, e este link continha minha ID juntamente com um token de segurança. Link. E após clicar neste link, eu fui redirecionado para uma pagina de cadastro que me pedia para inserir um password, e assim eu pudesse logar no aplicativo usando a versão paga. Minha dúvida é a seguinte, eu gostaria de criar meu próprio aplicativo, e implantar este mesmo sistema nele, onde eu geraria um link com uma ID especifica de um usuário, feita para aquele usuário apenas. Eu sei que é necessário um banco de dados, mas não sei qual plataforma usar para esta situação, que tipo de programação usar, e que linguagem de programação usar, seja php, java, etc. (Não sei absolutamente nada haha não se irritem comigo, prometo que vou melhorar) Não sei se vai ajudar, mas mandei a seguinte mensagem ao dono do aplicativo; hello Jalapenos! sorry interrupt you, i just wanna ask u some things about programming, for exemple, if I create any application for chrome or website with some paid resource like your app, how I could create this system like your, whit one link and token to allow some specifc "id" to create a password and use the paid resource? I need a data base or something? Em seguida ele me respondeu; hello Bruno, yes I have a database I use ajax calls in the extension. Database not linked with app. Website and database and extension interacts with website by ajax calls. Ele também me enviou um arquivo especifico do código fonte do aplicativo, não sei se pode ajudar em algo mas aqui vai; var premium; function premiumSet(a, b) { $("#premium_error").html("..."); $.ajax({ url: "http://x2bot.xyz/ajax/premium.php?a="+a+"&b="+b, cache: false }).done(function(html) { if (html == 1) { localStorage.setItem("x2bot_account_id", a); localStorage.setItem("x2bot_account_pw", b); checkPremiumCookies(); thisButtonToggle(); } else { $("#premium_error").html("Error: Wrong password or steam id"); } }); } function checkPremiumCookies() { if (localStorage.getItem("x2bot_account_id") == null && localStorage.getItem("x2bot_account_pw") == null) { premium = false; } else { premium = true; } } Me desculpem mais uma vez pela confusão, mas gostaria de receber uma luz e umas dicas, pois não faço ideia por onde começar, se eu devo criar primeiro o aplicativo, ou o banco de dados, se um site é mesmo necessário ou não, e como criar esses links específicos com hash de senha para cada ID individual, qual o melhor banco de dados usar MySQL, NoSQL, etc.Muito obrigado pela atenção!