Zahlen-Kodierung

Hallo!
Ich suche eine Funktion, mit der ich eine Integer-Zahl kodieren kann. Irgendeine eindeutige Abbildung, nicht bijektiv. So etwas in der Art:

[0…2176782336] -> ([0…9][a…z])^5

Das Ganze soll einen fortlaufenden Index so codieren, daß es auf den ersten Blick nicht auffällt, daß es sich um eine fotlaufende Zahl handelt.

In meine Tabelle steht also „1, 2, 3, 4“ die Bneutzer sehen z.B. „az3o8, ldsi4, su58n, apw6c“…

Ich will dann die Zahl in den code umrechnen und umgekehrt…

Gibt es soetwas in der Art schon vorgefertigt? Irgendeine Verschlüsselung vielleicht? Hat jemadn eine Ahnung, wie ich da am besten anfang? Meine bisherigen Versuche haben einen viel zu hohen rechenaufwand… das macht der server auf dauer nicht mit.

Hallo,

irgendwie verstehe ich den Sinn, dahinter nicht. Warum soll ein Benutzer diese umgerechnete Zahl sehen? Und warum gerade aus der ID umgerechnet?

Leg doch einfach in der gleichen Tabelle ein weiteres Feld an, in welchem Du mit md5() eine generierte Zufallszahl einträgst. Diese kannst Du dann den Usern als ID anzeigen. Die generierte Zahl ist genauso eindeutig wie die ID.

Um auf nummer Sicher zu gehen, kannst Du nach dem Generieren, die genereierte Zahl mit den in der DB vorhandenen Zahlen abgleichen und ggf. eine neue generieren lassen.

Oder verwende einfach ein Mnemorisches Wort als Identifizierung hier ein Code dazu:

1 function mkMnemorik( )
2 {
3 global $Mnemorik;
4 $conso=array("b","c","d","f","g","h","j","k","l",
5 "m","n","p","r","s","t","v","w","x","y","z");
6 $vocal=array("a","e","i","o","u");
7 $Mnemorik="";
8 srand ((double)microtime()\*1000000);
9 for($f=1; $f

Kannst aber auch in Zeile 6 die Vocale durch Zahlen ersetzten.

Alles andere würde meiner bescheidenen Meinung nach, überhaupt keinen Sinn machen.

Gruss Michael

Danke!
Danke!

Jetzt kann ich meine ID zwar nicht mehr umrechnen, ohne die sql-tabelle zu benutzen, aber ich denke, im Großen und Ganzen ist es die einfachste und am wenigsten rechenintensive Lösung!

Funktionniert einwandfrei.