Max: Zufallszahl

Hallo,

ist es mit php möglich einen 20 Stelligen Zufallscode zu erstellen, welcher Zahlen, groß und klein Buchstaben enthält?

Vielen Dank schon im Voraus.

Gruß
Max

  1. Hallo,

    Spontan fällt mir ein Array aus den gewünschten Zeichne ein, das mit shuffle($array) zufällig sortiert wird und dann mit array_slice($array, 20) die ersten 20 Elemente - und damit den "Code" - zurückgibt.

    Viele Grüße

    --

    Winning isn´t everything, it´s the only thing.
    1. Hallo,

      Hallo.

      Spontan fällt mir ein Array aus den gewünschten Zeichne ein, das mit shuffle($array) zufällig sortiert wird und dann mit array_slice($array, 20) die ersten 20 Elemente - und damit den "Code" - zurückgibt.

      Dann würde aber jedes Zeichen höchstens einmal vorkommen.

      Julian hat dir ja schon eine schöne Möglichkeit gezeigt ansonsten könntest du auch noch folgendes probieren.

        
      $hash = md5(microtime());  
      $hash = substr($hash, 0, 20);  
      
      

      Diese Methode ist schneller. Allerdings kommen nur Hexwerte vor (0-9, a-f).

      Grüße
      Jasmin

      1. Hallo,

        Diese Methode ist schneller. Allerdings kommen nur Hexwerte vor (0-9, a-f).

        Um dann einige, aber nicht alle Buchstaben in Großbuchstaben umzuwandeln, würde ich eine Funktion schreiben, die eine Zufallszahl generiert, wenn diese größer als ein bestimmter Wert ist, wandelt sie (vll auch mit regexp), einen Buchstaben in einen großen um, sonst nicht.

        Viele Grüße

        --
        Winning isn´t everything, it´s the only thing.
  2. Hi Max,

    möglich ist es natürlich, ich habe etwas ähnliches probiert und es geht, vielleicht nennt dir jemand aber eine einfachere Möglichkeit.

    Ich habs so gemacht:
    Ich habe eine Zufallszahl erzeugt und dann jeder Zahl einen Buchstaben beziehungsweise eine Zahl zugeordnet, der in eine Variable geschrieben wird. Das wird bei mir acht Mal, bei dir dann 20 mal wiederholt.

    Code:
    <?php

    while ($anzahl<=20){

    srand(microtime()*1000000);
    $zufall = rand(1,62);

    if ($zufall==1) {$zeichen = a;}
    if ($zufall==2) {$zeichen = b;}
    if ($zufall==3) {$zeichen = c;}
    if ($zufall==4) {$zeichen = d;}
    if ($zufall==5) {$zeichen = e;}
    if ($zufall==6) {$zeichen = f;}
    if ($zufall==7) {$zeichen = g;}
    if ($zufall==8) {$zeichen = h;}
    if ($zufall==9) {$zeichen = i;}
    if ($zufall==10) {$zeichen = j;}
    ..........
    ..........
    ..........

    $anzahl++;

    $Zufallscode .= $zeichen;
    }

    ?>

    -------------------

    MfG,
    Christian

    1. Übrigens gibt es bei der Methode 7.044 * 10^35 verschiedene Kombinationsmöglichkeiten, das sollte zufällig genug sein ;)

      MfG,

      Christian

  3. Hi,

    ist es mit php möglich einen 20 Stelligen Zufallscode zu erstellen, welcher Zahlen, groß und klein Buchstaben enthält?

      
    $len = 20;  
    $letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";  
    $rand_word = "";  
    for($i=0;$i<$len;$i++)  
        $rand_word .= substr($letters,mt_rand(0,strlen($letters)-1),1);  
    echo $rand_word;  
    
    

    Schöne Grüße
    Julian