GUID generator

Sivakatirswami katir at hindu.org
Sat Jun 21 00:12:55 EDT 2008


I'm building a PicLens Publisher here that will do pretty much what the 
current PicLens Publisher does from CoolIris, with some additions to 
their Media RSS format that their app does not do.
(see www.piclens.com)

One thing I need to emulate is their GUID (Global Unique ID) generator 
which outputs unique len(36) random strings like

557B4610-65DC-4FEA-B6DC-32C3FA4B374D

24D2C85A-DD13-4B5D-9CCF-8F3ADC3E6CC7

6B8CD7AA-11B5-4A0D-8EF1-0D6B18C80A17

0B7815AE-AC47-457D-B2CA-F0280947220D

there is no significance to these strings other than that the uniqueness 
of the string being close to infinity i.e. unlikely every to be 
duplicated again.

This is something brand new for me... I'm curious if anyone knows the 
patterns here or has any idea of the algorithm being used. It does 
appear that the alpha chars are always a) caps b) never go beyond F 
This hints at a hexidecimal system underlying the algorithm.
I presume one could request a random selection from the hex set: 
0123456789ABCDEF
and call this 36 times. i don't know why there is any need for 
hyphenated segments other than for readability....

But, it's pretty simple to write a generator the appears to emulate the 
algorithm.. I have this so far and it seems to do the job... any insights?

on mouseUp
repeat 5 times
 repeat 9 times
   put GetRandomHex() after  tGUID
 end repeat
 put "-" after  tGUID
 repeat 3 times
   repeat 4 times
     put GetRandomHex() after  tGUID
   end repeat
    put "-" after  tGUID
    end repeat
     repeat 12 times hexSet [tPickAnyOne]
   put GetRandomHex() after  tGUID
 end repeat
 put tGUID & cr after tOutPut
 put empty into tGUID
end repeat
put tOutPut
end mouseUp

function GetRandomHex
    put "0 1 2 3 4 5 6 7 8 9 A B C D E F" into hexSet
      split hexSet by " "
      put random(16) into tPickAnyOne
     return hexSet [tPickAnyOne]
end GetRandomHex

delivers

F2ACEA9EB-C3A5-F4CE-05B5-92888E1E80FA
66A5365D3-EF9A-EF00-66EB-6C82663130B7
65634AD6D-8577-A757-310F-47287CF85389
E2A1DC66D-C58C-1F26-26BF-35EA95A46B5C
BC04061AC-E3C5-3DEC-6EF3-7397B7757F8A


Seem OK?





More information about the use-livecode mailing list