1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Números aleatoriamente

Discussão em 'Web Development' iniciada por dkueti, 21 de Agosto de 2008. (Respostas: 18; Visualizações: 935)

  1. dkueti

    dkueti Power Member

    Sabem algum script ou outra forma qualquer que de números aleatoriamente?
     
  2. Em que linguagem?
     
  3. dkueti

    dkueti Power Member

    eu só queria er ao resultado... passo a explicar... Eu tenho um fórum, e estou a fazer uma "lotaria" e para ser completamente justo, queria que os numeros fossem completamente aleatorios...
     
  4. anjo2

    anjo2 Power Member

    Script em que linguagem? php? javascript(impossivel se for o cliente a correr)? asp?
     
  5. dkueti

    dkueti Power Member

    php, então..
     
  6. MPalhas

    MPalhas Power Member

    porque é que dizes que é impossivel se for o cliente a correr??

    em javascript tens a função Math.Random()

    em PHP tens a função rand()

    no caso do PHP podes opcionamente usar parametros na função, tipo:
    rand(10, 20) gera um aleatório entre 10 e 20
     
  7. Demio

    Demio Power Member

    Um bocadinho de esforço nunca fez mal a ninguém...

    http://www.google.com/
     
  8. Mavors

    Mavors Power Member

    Não é impossivel por impossibilidade técnica pq tens funcões para o fazer, mas um sorteio tem que ser feito com linguagem de servidor para ser vinculativo.

    O Math.Random() de javascript não te proporciona o número igual em todos os browsers e perde o proposito da existencia da função para uma lotaria. Nunca poderá correr no lado do cliente... :)
     
  9. countzero

    countzero Power Member

    Olá.

    Só para chamar a atenção que os números gerados por essas funções, a não ser que tenhas hardware especializado no servidor, não são verdadeiramente aleatórios; são pseudo-aleatórios. Isto pode, ou não, importar para o que pretendes fazer.

    De qualquer maneira, mesmo que não necessites de números verdadeiramente aleatórios, tem especial atenção com o gerador (de números pseudo-aleatórios) que vais utilizar.

    Cumps,
    JP
     
  10. dkueti

    dkueti Power Member

  11. hostmake

    hostmake Power Member

    Tão bonito de se ler, mas no entanto pseudo-aleatórios.. não vejo uma única razão de não se poderem usar, acho que toda a gente sabe isso, mas..

    De qualquer maneira, podem criar complementos para as vossas funções próprias de random, e usar o time actual para passarem a ser algo mais que pseudos.
     
  12. countzero

    countzero Power Member

    Olá hostmake!

    Volto a reforçar o que tinha dito: depende do propósito da utilização. Números pseudo-aleatórios são utilizados em "todo o lado" (e.g. criptografia), mas isso não implica que não existam geradores mais seguros que outros - era para isso que queria chamar a atenção.

    A escolha de um gerador seguro pode ser (ou não, lá está - depende do propósito) fundamental. Um exemplo "famoso" foi a falha de segurança grave no Kerberos IV (é uma apresentação de doze slides muito interessante), tirando um excerto de um dos sides:
    Permite-me discordar, mas utilizar o tempo como fonte de entropia é muito má ideia:
    Mais uma vez, não quero passar a ideia que estou a mandar flames ou parecido. Simplesmente acho que, se o objectivo é: "...fazer uma "lotaria" e para ser completamente justo, queria que os numeros fossem completamente aleatórios...", é preciso estar consciente dos desafios que existem numa tarefa deste género!

    Cumps,
    JP
     
  13. AliFromCairo

    AliFromCairo Power Member

    Hmm, isso depende do objectivo dos números aleatórios. A função que referiste pode ser utilizada para gerar uma chave aleatória para um jogo de sorte, por exemplo.
     
  14. hostmake

    hostmake Power Member

    countzero, também não estou a tentar abrir flames, tou na paz ;)

    mas, esses exemplo que deste não tem nada a ver com o exemplo do time do PHP, a não ser que consigas aldrabar o servidor que está a correr server-side PHP.

    anyway, os exemplos onde não seria apropriado fiarmo-nos em pseudo-números de certeza que não tem nada a ver com este tópico, mas obrigado pelo input para quem não sabia é claro :D
     
  15. countzero

    countzero Power Member

    Olá! Fiquei com algumas questões depois do teu último post.

    Como assim? O ataque consiste em prever qual o tempo do servidor, o que é mais ou menos trivial. O ataque é tornado ainda mais simples se tivermos em conta que, muito provavelmente, o servidor utiliza NTP e está sincronizado com uma fonte temporal na Internet.

    Não têm a ver? :| Importas-te de explicar um bocado melhor?

    Desde já, o meu obrigado.

    Cumps,
    JP
     
  16. Mavors

    Mavors Power Member

    Hmm, certo.
    Mas vamos imaginar por base o site do euromilhões. O que dizes será válido para o utilizador fazer uma chave aleatória para ele, para jogar, ou mesmo várias se desejar. Mas, imaginando que o sorteio do €Milhões era feito por computador, a função de geração aleatória teria de estar no servidor como é óbvio.

    Como o que me pareceu que o dkueti queria fazer era apenas a parte do resultado por isso é que disse que nunca poderia correr do lado do cliente. :)
     
  17. hostmake

    hostmake Power Member

    Sim, em principio deve usar NTP, e tens razão mas, é claro que é preciso algo mais na função de maneira a que torne o número o mais "aleatório" e difícil de prever possível.

    mas é claro que vamos estar sempre a falar de algoritmos a não ser que haja um input exterior que seja derivante de um acontecimento físico e já por si impossível de prever.

    E quanto ao dizer que não é importante, é porque duvido que neste caso ele precise desses cuidados, e como tall, já estamos a sair do on-topic
     
  18. AliFromCairo

    AliFromCairo Power Member


    Sim, claro.

    De qualquer maneira penso que o que ele queria era simplesmente obter um resultado para depois processar manualmente, sendo que o site escolhido (http://www.random.org/integers/) parece-me adequado, para além de ter também outros geradores interessantes.
     
  19. countzero

    countzero Power Member

    Olá.

    Ok, nesse aspecto temos opiniões diferentes, mas compreendo e respeito e teu ponto de vista!

    O dkueti, para resolver o problema dele, encontrou um site que gera números verdadeiramente aleatórios, o que é bastante interessante (às vezes o /dev/random esgota-se muito rapidamente). Já agora, obrigado pelo link dkueti!

    Cumps,
    JP

    P.S.-Não querendo ser considerado um "maluquinho da segurança", aconselho vivamente, a quem estiver a pensar em utilizar aquele site para alguma "coisa importante", a utilizar pelo menos SSL na ligação (i.e. https://www.random.org) - já que um man-in-the-middle destruiria por completo o propósito do site.
     
    Última edição: 22 de Agosto de 2008

Partilhar esta Página