Jump to content
karina pereira refacho

gerador de resultados hash 512

Recommended Posts

ola pessoal não entendo muito sobre php estou tentando juntar 2 script em php mas não tenho a minima ideia por onde começar se alguem puder me dar uma luz eu agradeço, vamos tenho esse script abaixo onde ele me gera todas as hash de 1 a 3000 

<?php
// array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 3000)
foreach (range(1, 3000) as $number) {
    echo hash('sha512', $number).'<br>'; 
} fim do script


eu preciso fazer com que ele junte com esse segundo script aqui abaixo


$seed = "HASH SERA INSERIDA AQUI-123456-1";
do {
     $seed = sha1($seed);
     $lucky = hexdec(substr($seed,0,8));
} while ($lucky > 4294960000);

$luckyNumber = ($lucky % 10000) / 100;

if ($luckyNumber < 0)
     $luckyNumber = -$luckyNumber;


echo $luckyNumber ;

FIM DO SCRIPT

 

se voce copiar esse segundo script e rodar no servidor vai me gerar esse resultado 18.65

eu preciso fazer com que ele gere todas as 3000 hash com o resultado na frente de cada hash exemplo abaixo

c3fc4fd56f773728a0421980c587dce13ea89992c5005f245e971a9a78966f590611c1eb0c89e3de9515ee917297c980fa4544f2b211f9e4a9d9f88b48ca5e62   3.48

e0e725f004f61cdae9017eb715a22d2bf60e9db2da81ced94da8c49b01c802600cfebfb5b5d04430824918b5f70a773f980b42192ec0e054bd655d7d084a6a69  15.68

 

 

desde ja agradeço a ajuda e atenção de todos

 

Edited by Alaerte Gabriel
Adição tag CODE

Share this post


Link to post
Share on other sites

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.

 

Edited by Diego Rinno
Editado por terem faltado algumas informações e links substanciais

Share this post


Link to post
Share on other sites

amigo muito obrigada pela dica, vou estudar os codigos aqui e ver se consigo vou tentar fazer a segunda opção que voce me passou, utilizar um formulário HTML e  $_GET["nome do campo no formulário"]

mais uma vez muito obrigada tenha uma otima semana

Edited by Gabriel Heming
Remover quote desnecessário
  • +1 1

Share this post


Link to post
Share on other sites
Em 08/08/2017 at 10:30, karina pereira refacho disse:

amigo muito obrigada pela dica, vou estudar os codigos aqui e ver se consigo vou tentar fazer a segunda opção que voce me passou, utilizar um formulário HTML e  $_GET["nome do campo no formulário"]

mais uma vez muito obrigada tenha uma otima semana

 

amigo se voce puder me dar uma luz não consegui fazer estou meio perdida pois não entendo nada sobre php desde ja muito obrigada pela atenção tenha uma otima semana

Share this post


Link to post
Share on other sites
15 minutos atrás, karina pereira refacho disse:

 

amigo se voce puder me dar uma luz não consegui fazer estou meio perdida pois não entendo nada sobre php desde ja muito obrigada pela atenção tenha uma otima semana

em vez de gerar 3000 hash poderia ser menor exemplo 100 hash so que queria facilitar o resultado par não ficar adicionado uma por uma por exemplo o script deveria mostrar as 100 hash com o resultado luckyNumber na frente exemplo abaixo de hash + resultado no final

 

4dff4ea340f0a823f15d3f4f01ab62eae0e5da579ccb851f8db9dfe84c58b2b37b89903a740e1ee172da793a6e79d560e5f7f9bd058a12a280433ed6fa46510a = 13.7

Share this post


Link to post
Share on other sites

ola acho que estou chegando lá consegui fazer com que ele gere a hash com o resultado so que ele so esta gerando uma hash com um resultado na parte foreach (range(1, 100) as $number) esta setado para gerar 100 hash com 100 resultados o que sera que fiz de errado ?

<?php
// array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 3000)
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 hash('sha512', $number).' = ';
echo $luckyNumber .'<br>';

no script acima se testar no http://phptester.net/ so me gera uma hash + o resultado no final igual abaixo

643c30f73a3017050b287794fc8c5bb9ab06b9ce38a1fc58df402a8b66ff58f69bf0a606ae17585352a0306f0e9752de8c5c064aed7003f52808b43ff992a603 = 35.46

 

nesse caso preciso que gere 100 hash com 100 resultados no final

se possivel me de uma luz por favor obrigada pela atenção

Share this post


Link to post
Share on other sites
1 hora atrás, karina pereira refacho disse:

ola acho que estou chegando lá consegui fazer com que ele gere a hash com o resultado so que ele so esta gerando uma hash com um resultado na parte foreach (range(1, 100) as $number) esta setado para gerar 100 hash com 100 resultados o que sera que fiz de errado ?


<?php
// array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ..., 3000)
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 hash('sha512', $number).' = ';
echo $luckyNumber .'<br>';

no script acima se testar no http://phptester.net/ so me gera uma hash + o resultado no final igual abaixo

643c30f73a3017050b287794fc8c5bb9ab06b9ce38a1fc58df402a8b66ff58f69bf0a606ae17585352a0306f0e9752de8c5c064aed7003f52808b43ff992a603 = 35.46

 

nesse caso preciso que gere 100 hash com 100 resultados no final

se possivel me de uma luz por favor obrigada pela atenção

so lembrando que foi mencionado para fazer em número aleatório o problema são as repetiçoes acredito que não ira gerar as hash de 1 a 100 corretamente e sem repetir

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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).

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

  • Similar Content

    • By izacgaldino
      Olá pessoal esse é meu primeiro tópico então me desculpem por qualquer coisa.
       
      Depois de uma longa busca quase sem resultados venho buscar ajuda aqui. Tenho uma necessidade que é de automatizar minha área de pagamentos onde uma vez por mês tenho que fazer muitas transferências bancárias manualmente, preciso de uma forma de automatizar isso. Eu recebo pagamentos pelo pagseguro mas após um tempo preciso transferir uma % desses valores para outras contas. 
       
      Nos meus resultados encontrei a ferramenta TRANSFEERA, ela é nova e encontrei pouco conteúdo sobre ela.
       
      Vocês teriam alguma sugestão?
    • By Gabriel_Miranda
      Estou criando um carrinho de compras para depois implementa - lo em um projeto, mas acabei travando na quantidade dos produtos.
      Como posso obter a quantidade de produtos que o cliente deseja levar e armazena-las no carrinho para depois fazer os cálculos?
      Sou novo em PHP e ainda estou aprendendo.
      <pre> <?php include('conect.php'); session_start(); $totalCar = 0; // CRIA O ARRAY CARRINHO if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } // ADICIONA OS PRODUTOS if(isset($_GET['id'])){ //ADICIONAR CARRINHO $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } } // MOSTRA E PUXA AS INFORMACOES DO BANCO if(count($_SESSION['carrinho']) == 0){ echo "carrinho vazio<br>"; echo "<a href='index.php'>voltar</a>"; }else{ $_SESSION['dados'] = array(); foreach ($_SESSION['carrinho'] as $id => $qtd) { $query = $mysqli->query("select * from produtos2 where id = $id"); echo $mysqli->error; while ($tabela=$query->fetch_assoc()) { echo "Nome: $tabela[nome]<br>"; echo "Quantidade: <input type='number' value='$qtd'><br>"; echo "Preco: ".$tabela['preco'] * $qtd."<br>"; echo "<a href='remove.php?id=$id'>Remover</a><br><hr><br>"; $totalCar += $tabela['preco']; } array_push($_SESSION['dados'], array( 'idProd' => $id, ) ); } echo "<a href='index.php'>voltar</a><br><br>"; echo "Total do carrinho: $totalCar<br><br>"; } ?> </pre>  
    • By joaovitor102
      <?php require_once '../App/auth.php'; require_once '../layout/script.php'; require_once '../App/Models/vendas.class.php'; require_once '../App/Models/cliente.class.php'; require_once '../App/Models/connect.php'; require '../layout/alert.php'; echo $head; echo $header; echo $aside; echo '<div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> Todos os produtos </h1> <ol class="breadcrumb"> <li><a href="../"><i class="fa fa-dashboard"></i> inicio</a></li> <li class="active">Itens</li> </ol> </section> <!-- Main content --> <section class="content"> '; echo " <form action='../App/Database/Vervendas.php' method='post'> <div class='form-group has-feedback'> <input type='number' name='Dia' style='width:50px;' id='dia' placeholder='dia'><b>/</b> <input type='number' name='Mes' style='width:50px;' id='mes' placeholder='mes'><b>/</b> <input type='number' name='Ano' style='width:100px; id='ano''placeholder='ano'> <button type='submit'>Envia</button> </div> </form> "; echo '</div>'; echo '</section>'; echo '</div>'; echo $footer; echo $javascript; ?> public function ListaVendas($dia,$mes,$ano){ $item="SELECT * FROM `itens`,`Vendas`,`produtos` WHERE `iditem`=`idItens` and `Produto_CodRefProduto`=`CodRefProduto` and `datareg`='$ano'-'$mes'-'$dia'"; return $item; } <?php require_once '../../App/auth.php'; require_once '../../App/Models/vendas.class.php'; if(isset($_POST['dia']) && isset($_POST['mes']) && isset($_POST['ano'])) { $dia=$_POST['dia']; $mes=$_POST['mes']; $ano=$_POST['ano']; $vendas=new Vendas; $dados=$vendas->ListaVendas($dia,$mes,$ano); $limite=mysql_query("$dados"); while ($dados =mysql_fetch_array($limite) ) { $valor=$dados['valor']; $data=$dados['datareg']; $produto=$dados['NomeProduto']; echo "<div > <td>valor:' . $valor . '</td> <td>dia:' . $data. '</td> <td>nome produto:' . $produto . '</td>'; </div>"; $valores+=$valores; } echo "<div> <td>'.$valores.'</td> </div>"; } else{exit;} ?> esta dando erro no programa
    • By joaovitor102
      <?php require_once '../App/auth.php'; require_once '../layout/script.php'; require_once '../App/Models/cliente.class.php'; require_once '../App/Models/vendas.class.php'; echo $head; echo $header; echo $aside; ?> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> Vendas </h1> <ol class="breadcrumb"> <li><a href="../"><i class="fa fa-dashboard"></i>inicia</a></li> <li class="active">Vendas</li> </ol> </section> <!-- Main content --> <section class="content"> <?php require '../layout/alert.php'; ?> <!-- Small boxes (Stat box) --> <div class="row"> <div class="box box-primary"> <!-- /.box-header --> <div class="box-body"> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <?php if(isset($_SESSION['msg']) != NULL) { echo $_SESSION['msg']; } ?> </div> </div> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <div class="table-responsive"> <table id="mytable" class="table table-bordred table-striped" border="2"> <?php $cartvd = $_SESSION['notavd']; $vendas = new vendas; $row = $vendas->notavd($cartvd); $idNota=$row[0]['idvendas']; $cliente = new cliente; $dados = $cliente->dadoscliente($row[0]['cliente_idCliente']); ?> <tr> <h1 style=""><b>Nota de Venda- Dentista do Sorriso</b></h1> <td><b>Numero da Nota: </b><?php echo $idNota; ?> </td> <td colspan="5"> <b>Cliente: </b><?php echo $dados['NomeCliente']; ?> </br><b>CPF:</b> <?php echo connect::format_CPF($dados['cpfCliente']); ?> </td> <tr> <tr> <td><b>Cod.</b></td> <td><b>Produto</b></td> <td><b>Qtde</b></td> <td><b>Valor Produto.</b></td> </tr> <?php $soma = 0; foreach ($row as $key) { $vendas = new vendas; $dadosItem = $vendas->dadosItem($key["iditem"]); $nomeProduto = $dadosItem['NomeProduto']; echo "<tr>"; echo '<td>' .$key["iditem"]. '</td>'; echo '<td>' .$nomeProduto. '</td>'; echo '<td>'. $key["quantitens"] . '</td>'; echo '<td>'; echo connect::format_moeda($key['valor']); echo '</td>'; echo "</tr>"; $soma = $soma + $key["valor"]; } ?> <tr> <td colspan="4">Data: <?php echo date('d M Y'); ?> </td> <td><h4><b>Total:</b></h4> <?php echo connect::format_moeda($soma); ?></td> </tr> </table> </div> </div> </div> </div> </div> </div> </div> <a href="./"><button class="btm btm-success">Voltar</button></a> </section> </div> <?php unset($_SESSION['msg'],$_SESSION['CPF'], $_SESSION['Cliente'], $_POST); echo $footer; echo $javascript; ?> <!-- Fim no codigo --> public function notavd($cart){ $query = "SELECT * FROM `vendas` WHERE `cart` = '$cart'"; if($this->result = mysqli_query($this->SQL, $query) or die (mysqli_error($this->SQL))){ while($row = mysqli_fetch_array($this->result)){ $out[] = $row; } } return $out; }//--notavd Estou com um problema com o foreach
    • By Kelven
      Existe alguma maneira de meu código não aparecer no código fonte que não seja por meio de Php? Tipo um código javascript que não apareça no código fonte? Quero fazer uma verificação if else se é um determinado valor de uma variável mas sem usar o php pois o blog só aceita javascript, html e css.
×

Important Information

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