descifar algoritmo de creación de int64 a partir de nombre de archivo
Shell Root:
Poned la función que te dieron, NO LA QUE HICISTE EN C#!
jor1980:
La función es esta, aunque según me dijeron aquí puede que no sea verdadera:
Código:
function calc_hash(string) {
hash = 0
string = ReverseString(string)
n = 1
for (i = 1; i < length(string); i++) {
hash = hash + Ord(string[i]) * n
n = n * 33
}
hash = hash + n*5381
return hash
}
APOKLIPTICO:
Yo ya la estuve viendo.
Código
#include <iostream>
#include <string.h>
using namespace std;
int64_t calc_hash(char *szString);
void ReverseString(char *szString);
int main()
{
char szTestString[1000000];
memset(szTestString, 'a', 100000);
cout << calc_hash(szTestString);
return 0;
}
int64_t calc_hash(char *szString)
{
int64_t hash = 0;
ReverseString(szString);
unsigned long n = 1;
long i = 1;
for (i = 0; i < strlen(szString); i++)
{
hash = hash + szString[i] * n;
n = n * 33;
}
hash = hash + n*5381;
return hash;
}
void ReverseString(char *szString)
{
char *szOutString = new char[strlen(szString)];
for(unsigned long i = 0 ; i < strlen(szString); i++)
{
szOutString[strlen(szString) - i - 1] = szString[i];
if(i%10000 == 0) cout << i << endl;
}
szOutString[strlen(szString)] = 0;
strcpy(szString, szOutString);
delete szOutString;
}
Ese es un equivalente en C++.
Igual, hay muchas cosas que lo descalifican como hash.
Overflowea facilmente con un input lo suficientemente grande y el tamaño de la salida es proporcional al tamaño de la entrada, aparte de que no da los mismos hashes.
jor1980:
Hola, parece que alguien ha dado con el hash y en este programa si leeis entre sus características reconstruye los hashes, no si son exáctamente los que busco pero lo más probable es que si, teniendo este programa que los genera que puedo hacer ahora?
http://downloads.moddingway.com/file/5525.html
APOKLIPTICO:
El programa no te sirve??
Ya que estás, pasate por la encuesta del taller de criptografía:
https://foro.elhacker.net/criptografia/encuesta_creando_un_algoritmo_entre_todos-t306507.0.html
Navegación
[#] Página Siguiente
[*] Página Anterior