Jump to content
Sign in to follow this  
xtrm0

Data structure (md5 generator)

Recommended Posts

xtrm0

Boa Noite. Ontem decidi fazer um dicionario com imensas combinacoes de todas as chaves md5 possiveis.

Ja criei o programa para gerar as md5 e para as comparar com uma dita pelo utilizador, mas deparei-me com um problema, qual a melhor estrutura para guardar os resultados ja processados no pc, de modo a que tenham um arquivo e pesquisa rapidos, sem nessetir de nunca eleminar nada de lá?

E ainda, como guardar essa estrutura num ficheiro bin, ou em varios?

EX:

772ec34f64839b73d23d74fec27e9d71 ficava no ficheiro 772

a42ec34f64839b73d23d74fec27e9d71 ficava no ficheiro a42

etc.

Agraço ja a quem conseguir ajudar-me.


<Signature goes here>

Share this post


Link to post
Share on other sites
mjamado

Em primeiro lugar, tens a noção que isso já existe, certo? São rainbow tables e existem por aí na 'Net, prontas a descarregar.

Depois, quer uma árvore binária, quer uma trie fazem pesquisas rapidamente - mas o armazenamento delas é grandito. Se não tiver como objectivo a aprendizagem, já consideraste delegar esse tipo de trabalho a um motor de BD, como, por exemplo, o SQLite?


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
xtrm0

Nao sei utilizar, podes-me dar um exemplo de uma utilização de uma base de dados sqlite(codigo)?

Eu sei que já existem rainbow tables, mas o site com a maior que eu encontrei na net continha 4.800.000.000.000, que são geradas, à vontade, num dia.

Inicie este projecto (http://www.portugal-a-programar.pt/index.php?showtopic=41224) depois de encontrar um md5 que nao existia nessa base de dados (http://www.cmd5.org/) e de constatar que para descobrir esse md5 no site demoravam pelos menos uma semana para testar as combinações de numeros com 8 caracteres de 0 a 9. O meu programa demora um minuto a fazer isso e a dizer que não corresponde a: 772ec34f64839b73d23d74fec27e9d71 .


<Signature goes here>

Share this post


Link to post
Share on other sites
mjamado
Nao sei utilizar, podes-me dar um exemplo de uma utilização de uma base de dados sqlite(codigo)?

Em que linguagem? Tenho quase a certeza que já vi por aqui no fórum malta a usar SQLite em várias... Use the search, Luke...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
xtrm0

Já tive a procurar e não encontrei nenhum tutorial/exemplo concreto de como usar mysqlite. :wallbash:

Podes mandar-me um link, ou um exemplo de codigo sff.


<Signature goes here>

Share this post


Link to post
Share on other sites
mjamado

Já tive a procurar e não encontrei nenhum tutorial/exemplo concreto de como usar mysqlite. :wallbash:

Podes mandar-me um link, ou um exemplo de codigo sff.

Procuraste, por exemplo, no site oficial do SQLite?  😎


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
xtrm0

Sim, mas lá não diz como instalar no ubuntu, ou como fazer pesquisas (dizer diz, mas as funções estam todos separadas, e é preciso ler a definição de função a função, uma a uma).

Não tens um link de nenhum tutorial bem explicado?


<Signature goes here>

Share this post


Link to post
Share on other sites
mjamado
Não tens um link de nenhum tutorial bem explicado?

Não, mas tens tudo o que precisas na documentação oficial. Se não queres ter trabalho a estudar a documentação oficial, já não posso fazer nada por ti...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
xtrm0

Obrigado pela ajuda, mas acabei por ver este video do youtbe:

https://www.youtube.com/embed/BfVP7G4DJkM?feature=oembed

E por arranjar umas headers, que facilitama abertura de db. Basicamente são duas headers:

Database.cpp

#include "Database.h"
#include <iostream>

Database::Database(char* filename)
{
database = NULL;
open(filename);
}

Database::~Database()
{
}

bool Database::open(char* filename)
{
if(sqlite3_open(filename, &database) == SQLITE_OK)
	return true;

return false;   
}

vector<vector<string> > Database::query(char* query)
{
sqlite3_stmt *statement;
vector<vector<string> > results;

if(sqlite3_prepare_v2(database, query, -1, &statement, 0) == SQLITE_OK)
{
	int cols = sqlite3_column_count(statement);
	int result = 0;
	while(true)
	{
		result = sqlite3_step(statement);

		if(result == SQLITE_ROW)
		{
			vector<string> values;
			for(int col = 0; col < cols; col++)
			{
				values.push_back((char*)sqlite3_column_text(statement, col));
			}
			results.push_back(values);
		}
		else
		{
			break;   
		}
	}
   
	sqlite3_finalize(statement);
}

string error = sqlite3_errmsg(database);
if(error != "not an error") cout << query << " " << error << endl;

return results;  
}

void Database::close()
{
sqlite3_close(database);   
}

Databse.h:

#ifndef __DATABASE_H__
#define __DATABASE_H__

#include <string>
#include <vector>
#include <sqlite3.h>

using namespace std;

class Database
{
public:
Database(char* filename);
~Database();

bool open(char* filename);
vector<vector<string> > query(char* query);
void close();

private:
sqlite3 *database;
};

#endif

Na fonte main.cpp tenho os seguintes includes (e nenhum codigo que chame as funcoes Database):

#include <iostream>
#include "string.h"
#include <fstream>
#include <string>
#include "md5.h"
#include "Database\Database.h"
using namespace std;

Mas deu-me estes erros:

1>------ Build started: Project: md5crc, Configuration: Debug Win32 ------

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_open referenced in function "public: bool __thiscall Database::open(char *)" (?open@Database@@QAE_NPAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_errmsg referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_finalize referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_column_text referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_step referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_column_count referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_prepare_v2 referenced in function "public: class std::vector<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >,class std::allocator<class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > > __thiscall Database::query(char *)" (?query@Database@@QAE?AV?$vector@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$allocator@V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@2@@std@@PAD@Z)

1>Database.obj : error LNK2019: unresolved external symbol _sqlite3_close referenced in function "public: void __thiscall Database::close(void)" (?close@Database@@QAEXXZ)

1>C:\Users\Xtrm0\documents\visual studio 2010\Projects\md5crc\Debug\md5crc.exe : fatal error LNK1120: 8 unresolved externals

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Algume ideia do que estou a fazer mal?


<Signature goes here>

Share this post


Link to post
Share on other sites
xtrm0

Qual, a biblioteca sqlite3.h?

Antes de eu ter adicionado as headers Database.h e .cpp funcionava.


<Signature goes here>

Share this post


Link to post
Share on other sites
xtrm0

Não sei mesmo o que estou a fazer mal. E a biblioteca  sqlite3 funciona se eu não fizer o include do Database.h e a incluir.

Alguma ideia de qual possa ser o erro?


<Signature goes here>

Share this post


Link to post
Share on other sites
xtrm0

Consegui diminuir os erros para:

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_close

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_open

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_column_count

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_column_text

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_errmsg

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_finalize

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_step

1>Database.obj : error LNK2001: unresolved external symbol _sqlite3_prepare_v2


<Signature goes here>

Share this post


Link to post
Share on other sites
Triton

Parece que não estás a linkar o sqlite como deve ser.

Quando compilas, tens de usar a opção -L e -l para linkar as bibliotecas.


<3 life

Share this post


Link to post
Share on other sites
Triton

Como é que se escolhe as opcoes a usar no visual studio?

Isto são coisas que facilmente descobres a ler a documentação (ou a pesquisar no Google).


<3 life

Share this post


Link to post
Share on other sites
xtrm0

nao encontro. ja experimentei procurar visual

c++ linkage;

visual c++ libraries;

visual c++ lib linkage;

visual c++ lib link;

visual c++ -L -I;

etc..

Diz-me só em que menu é que é.


<Signature goes here>

Share this post


Link to post
Share on other sites
Triton

nao encontro. ja experimentei procurar visual

c++ linkage;

visual c++ libraries;

visual c++ lib linkage;

visual c++ lib link;

visual c++ -L -I;

etc..

Diz-me só em que menu é que é.

Nas opções do projecto, vais ao sub-menu Linker.


<3 life

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.