Hallo Whitesnake,
Mein Problem ist, dass wir das im Unterricht machen
Im Endeffekt dürfte dann folgendes für Dich ausreichen: Du sammlest viele möglichst zufällige Daten, baust die zu einem riesigen String zusammen und lässt einen Hashing-Algorithmus (bspw. MD5) drüber laufen.
Bspw. könntest Du den in PHP eingebauten Random Number Generator mt_rand() verwenden, diesen zusammen mit ein paar anderen Dingen (Remote-IP-Adresse sofern verfügbar, aktuelle Uhrzeit, Server-Version, was weiß ich) zu einem langen String zusammenfügen. Dann lässt Du md5() drüber laufen und kriegst einen relative eindeutigen Schlüssel.
Achtung: mt_rand() in PHP ist meist deutlich besser als rand(), allerdings benutzt das den "Mersenne Twister"-Algorithmus, der *nicht* kryptographisch sicher ist. Das heißt nicht, dass man ihn nicht verwenden kann, allerdings muss man sich im klaren sein, dass die Chancen, dass der nächste Schlüssel, den der Algorithmus damit erzeugt, vorhergesehen werden kann, drastisch erhöht wird (allerdings gehört dennoch ein beträchtlicher Aufwand dazu, diesen Angriff durchzuführen, insofern dürfte der Algorithmus für die gegebene Aufgabenstellung hinreichend sicher sein).
Falls Dir ein Linux-System zur Verfügung steht und Du keine open_basedir-Restriction in PHP hast, dann ist eine *viel* sicherere Methode, Zufallszahlen zu bekommen, aus /dev/urandom zu lesen (oder /dev/random für die ganz paranoiden). Lese dort n Bytes heraus und bilde daraus nochmal einen Hash (n ist abhängig vom Hash; wenn Du MD5 nimmst wäre 16 die ideale Wahl, da ein MD5-Hash nur 128 Bit lang ist und somit mehr Zufallsdaten nichts erreichen würden) - das dürfte eine der sichersten Methoden sein, mit PHP etwas zufälliges zu erzeugen.
Viele Grüße,
Christian