Preciso fazer um script que descubra um determinado valor.
Não vejo nenhum exemplo pratico a não ser a quebra de senhas(não é essa minha intenção, é apenas para estudo).
O que eu tenho até agora, vou postar logo abaixo, foi escrito em PHP, mas não usa nenhuma função específica do php, então está de fácil entendimento para qualquer programador(ou não).
<?php
#! quantidade mínima de caracteres
$min = 5;
#! quantidade máxima de caracteres
$max = 5;
#! caracteres que @match pode conter
$chars = 'abcdefg';
#! indice correspondente aos caracteres de @chars, neste caso, o valor é igual a: ab
$match = array(0, 1);
#! número de tentativas já realizadas
$num = 0;
#! valores da ultima tentativa
$arr = array();
for($i = $min; $i < $max; $i++){
// reseta todos os indices de @arr para 0
for($w = 0; $w < $i; $w++){
$arr[$w] = 0;
}
// adiciona um novo indice em @arr
$arr[] = 0;
// para cada um dos indices de @arr
for($j = 0; $j < $i+1; $j++){
// percorre toda string @chars
for($n = 0; $n < strlen($chars)-1; $n++){
// o valor foi encontrado
if($arr == $match){
print_r($match);
exit();
}
// o valor não foi encontrado
$num++;
$arr[$j]++;
}
}
}
?>
Legenda(caso seja necessário^^):
strle() : retorna o número de caracteres de uma string
print_r(): exibe todos os indices e valores de um array
exit(): encerra a execução do código
Até agora, ele está quase cumprindo o objetivo.
Dei um print_r em cada resultado, logo acima de $num++, e ele me retornou isso:
PS: tentei colocar aqui o que me foi retornado, mas o forum não permitiu porque ficou muito grande, mas acredito que pelo script já da pra ter uma base
Observe que do indice 1 em diante, só começam a ser alterados apos o indice 0 chegar no sei valor máximo(6).
O problema, é que ele fez apenas 30 tentativas, quando deveria ter feito, pelos meus calculos(7*7*7*7*7): 16807
7 corresponde ao número de caracteres em @chars e pelo método(não lembro o nome) que se usa para descobrir o numero depossibilidades, seria: 7^5, ou 7*7*7*7*7
Estarei tentando continuar isso, mas caso alguém souber o caminho das pedras, ficaria muito grato se pudesse compartilhar.
Pergunta
vini_loock
Olá.
Estou com um probleminha de lógica aqui.
Preciso fazer um script que descubra um determinado valor.
Não vejo nenhum exemplo pratico a não ser a quebra de senhas(não é essa minha intenção, é apenas para estudo).
O que eu tenho até agora, vou postar logo abaixo, foi escrito em PHP, mas não usa nenhuma função específica do php, então está de fácil entendimento para qualquer programador(ou não).
Legenda(caso seja necessário^^):
strle() : retorna o número de caracteres de uma string
print_r(): exibe todos os indices e valores de um array
exit(): encerra a execução do código
Até agora, ele está quase cumprindo o objetivo.
Dei um print_r em cada resultado, logo acima de $num++, e ele me retornou isso:
PS: tentei colocar aqui o que me foi retornado, mas o forum não permitiu porque ficou muito grande, mas acredito que pelo script já da pra ter uma base
Observe que do indice 1 em diante, só começam a ser alterados apos o indice 0 chegar no sei valor máximo(6).
O problema, é que ele fez apenas 30 tentativas, quando deveria ter feito, pelos meus calculos(7*7*7*7*7): 16807
7 corresponde ao número de caracteres em @chars e pelo método(não lembro o nome) que se usa para descobrir o numero depossibilidades, seria: 7^5, ou 7*7*7*7*7
Estarei tentando continuar isso, mas caso alguém souber o caminho das pedras, ficaria muito grato se pudesse compartilhar.
[]'s
Vinicius
Editado por vini_loockLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.