Мне нужно создать токен / ключ, чтобы использовать его в качестве порядкового номера, поэтому он должен быть уникальным, токены должны быть чем-то вроде «6X990742MG185953R», чтобы мы могли использовать его как штрих-код, т.е. http://barcodes4.me/barcode/c128b/6X990742MG185953R.png
Мы не можем использовать UUID или GUID, потому что чем длиннее, тем ближе мы к этому:
</p>
<pre><code>function uuid64() {
$uuid = uuid(); // some UUID v4
$byteString = "";
$uuid = str_replace("-", "", $uuid);
for($i = 0; $i < strlen($uuid); $i += 2) {
$s = substr($uuid, $i, 2);
$d = hexdec($s);
$c = chr($d);
$byteString = $byteString.$c;
}
$b64uuid = base64_encode($byteString);
// Replace the "/" and "+" since they are reserved characters
$b64uuid = str_replace("/", "_", $b64uuid);
$b64uuid = str_replace("+", "-", $b64uuid);
// Remove the trailing "=="
$b64uuid = substr($b64uuid, 0, strlen($b64uuid) - 2);
return $b64uuid;
}