Quote:
Originally Posted by [FeK]DraKiNs
Paulo em relaзгo ao seu cуdigo eu aconselho inverter a posiзгo dos caracteres e intercalar os valores, de modo que fique uma combinaзгo ъnica. Como o valor fica grande no final use bit shift ou divisгo durante a operaзгo
** Jб acho algum cуdigo para postar moderaзгo
Editado:
pawn Код:
HashKey(Dados[]) {
static Len, Hash, valor;
Len = strlen(Dados), Hash = 0; valor = 0;
for(new i; i != Len; ++i) { valor = Dados[i]; if(valor < 128) { // caso letra atual for colisora valor = 8160 * Dados[i]; // 32 chars (32 * 255) } Hash += valor; } return Hash; }
|
Esse seu Hash tbm nгo funciona, eu testei assim: "Paulo", "aPulo", "uolPa", enfim deu tudo o mesmo Hash.
Dei uma simplificada, mais eu testei com todos as combinaзхes para "Paulo" e nenhuma deu o mesmo resultado!
pawn Код:
stock TerroR_HashKey(Dados[]) {
static Len, Hash; Len = strlen(Dados), Hash = 0;
for(new i; i != Len; ++i) Hash += (Dados[i]*Dados[(i+1)]);
return Hash;
}
Quote:
Originally Posted by [FeK]DraKiNs
Nгo. Ainda sim nгo serб seguro. Em um teste que fiz com udbEncode, consegui achar umas 150 combinaзхes de senhas iguais (colisхes) em poucos minutos.
|
Por Favor me mostre como vc encontrou para que eu possa aperfeiзoar se necessбrio!