Generate random unique serials

I want to build a token number generator. In each call, a random and unique 8-digit number should be returned. I am using PHP and MySQL. In MySQL I'll have a table where I will insert the new serial, each time it will be generated.

How can I generate new numbers in each call?

Tokens will be used from end-users to activate software (and will expire, e.g. after 1 week). So, I need tokens to be unique and not sequential. This describes better my needs. Token format will be just numbers, so that it can be easily spelled and typed.

Even if tokens expire, I do not want to generate an already generated token at a later time.

Thank you

Upvotes: 2

Views: 1329

Answers (2)

napolux
napolux

Reputation: 16094

I usually use http://php.net/manual/en/function.uniqid.php with the more_entropy parameter to true.

Upvotes: 0

jacobgelman
jacobgelman

Reputation: 332

Ok, so this code does not put the serial number into a database but it will return a serial number 8 digits long. If you want just numbers change the allowed characters variable to just numbers.

<?php

    function generate_serial_number() {

       $Allowed_Charaters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
       return substr(str_shuffle($Allowed_Charaters), 0, 8);

    }

?>

Upvotes: 3

Related Questions