Jump to content

Diego Rinno

Members
  • Content count

    314
  • Joined

  • Last visited

  • Days Won

    1

Diego Rinno last won the day on March 21 2013

Diego Rinno had the most liked content!

Community Reputation

35 Levemente Bom

6 Followers

About Diego Rinno

  • Rank
    Gerente de Marketing
  • Birthday May 14

Informações Pessoais

  • Sexo
    Masculino

Recent Profile Visitors

1856 profile views
  1. Diego Rinno

    gerador de resultados hash 512

    E no caso de gerar um hash aleatório sem repetir nenhum deles nem mesmo uma única vez seria um pouco mais complicado... você teria de armazenar cada resultado num array e depois verificar a existência dele. Caso exista, remove faria com que seu laço de repetição fosse executado uma vez mais além do esperado. Recomendo que você aprenda primeiro a fazer da forma como está agora, simplesmente gerando números aleatórios de 1 a 100 pra só depois passar pra essa outra parte mais complexa, um pouco (mas também não é um bicho de 7 cabeças).
  2. Diego Rinno

    gerador de resultados hash 512

    Boa tarde! Desculpa a demora a responder, fiquei sem conexão por conta de um poste que caiu aqui perto de casa. Enfim, vamos la. Se você quer gerar 100 resultados diferentes, poderia resolver facilmente alterando um pouco o seu código atual. Para tanto, bastaria mover parte do seu código e inseri-lo totalmente dentro do seu laço de repetição foreach(), que já é responsável por realizar um mesmo script N vezes, dessa forma: <?php // array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 3000) $n=1; foreach (range(1, 100) as $number) { $variavel = hash('sha512', $number).'-12345-1'; do { $variavel = sha1($variavel); $lucky = hexdec(substr($variavel,0,8)); } while ($lucky > 4294960000); $luckyNumber = ($lucky % 10000) / 100; if ($luckyNumber < 0) $luckyNumber = -$luckyNumber; echo "Resultado $n<br />\r\n".hash('sha512', $number).' = '; echo $luckyNumber .'<hr>'; $n++; } OBS: A variável $n eu coloquei simplesmente pra facilitar sua visualização e pra que você possa perceber com mais facilidade que ele, de fato, gerou os 100 resultados, bem como o trecho "Resultado $n<br />\r\n". do código também é simplesmente para uma melhor visualização. Todos esses trechos de código devem ser removidos quando você for utilizá-lo para seu objetivo final, depois que aprender como fazer.
  3. Diego Rinno

    gerador de resultados hash 512

    Primeiramente boa madrugada! Gerar 3.000 linhas de resultado e exibir numa só página sem paginação seria exaustivo pro leitor, quem quer que ele seja, além de bastante desorganizado. Sem contar que geraria um "peso" grande na renderização da página e facilmente travaria o navegador num PC mais modesto. Sabendo disso, você precisa entender como e o que são as variáveis, precisa aprender sobre a estruturação da linguagem. Vamos começar. Vou explicar linha por linha do seu código. foreach(){} é um loop, um laço de repetição específico para trabalhar com arrays (sabe o que são arrays? se não, pergunte). for = para, each = cada. Leia o foreach assim: para cada($índice_do_meu_array como $string_que_armazenará_o_valor_do_índice_atual){processe este código}. Existem muitos laços de repetição, estude-os. echo hash('sha512', $number).'<br>'; Leia: imprima na tela este número criptografado em sha512 e gere uma quebra de linha HTML ao final. $seed é uma variável onde você deve armazenar o valor gerado pelo código acima. Pelo que entendi do script você deveria escolher um hash exclusivo e inseri-lo neste campo. Para definir um valor a uma variável, comumente utiliza-se o seguinte método: $variavel = "valor"; ou $variavel = false; ou $variavel = true; ou $variavel = 123456789; etc. do{}while() é outro laço de repetição. Leia: faça{este código}enquanto(esta condição for verdadeira); Esse trecho do seu cógido gera um número aleatório e o insere na variável $lucky. A função hexdec($variavel) retorna o decimal equivalente do número hexadecimal enviado via $variavel e converte uma string hexadecimal para um número decimal, ignorando qualquer caracter não hexadecimal que encontrar em $variavel. $luckyNumber = ($lucky % 10000) / 100; essa é uma operação matemática. Ela resulta no módulo (resto da divisão) de $lucky por 10.000 e divide o resultado por 100. Por exemplo, 10 % 8 é o mesmo que 10 /8 = 1 com resto 2, portanto 10 % 8 retornaria 2. if ($luckyNumber < 0) $luckyNumber = -$luckyNumber; Esse trecho diz o seguinte: se $luckyNumber for menor que 0, então $luckyNumber é igual a -$luckyNumber (o mesmo número com o indicador de negativo). echo $luckyNumber; Leia: imprima minha variável chamada $luckyNumber. Você poe exibir o resultado do jeito que deseja concatenando (juntando) as variáveis que contenham o hash e o resultado. No entanto no seu código, o hash sha512 não está sendo armazenado em local algum. Você precisa armazená--lo ou envia-lo para a página que gerará o $luckyNumber. Você pode fazer isso de duas formas: randomizando completamente o código, deixando de exibir os hashes na tela e sim armazenando um aleatório numa variável (substitua o echo por $variavel = ), mas não bastaria simplesmente fazer isso, pois, faça o teste, o resultado seria SEMPRE um hash do número 3000. Neste caso, recomendo que utilize a função rand(1, 3000) para gerar um número aleatório e então encripte-o com hash("sha512", $numeroAleatorio). Lembre de armazenar o valor do rand() numa variável para encriptá-la depois. Dessa forma já resolveria sua questão imprimindo algo similar a $luckyNumber.' '.$numeroAleatorio; Para concatenar strings utilize o PONTO . entre elas. Você pode concatenar uma variável a uma string explícita também, como fiz no exemplo acima em .' '., que é uma string com um espaço como sendo o seu valor. Outra opção seria gerar os hashes, como é feito atualmente, numa página e utilizar um formulário HTML para enviá-lo à página que gera o $luckyNumber. Neste caso, capture o valor do seu <input> que terá a hash escolhida pelo usuário da página utilizando as variáveis reservadas $_GET["nome do campo no formulário"] ou $_POST["nome do campo no formulário"], a depender o ditpo de postagem realizada através deste formulário. Após capturado o valor, adicione-o à variável $seed e o resto ocorrerá normalmente, gerando seu $luckyNumber. Se ainda tiver dúvidas, pergunte.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.