Golang 实现
package main
import (
"fmt"
"github.com/google/uuid"
)
func main() {
id := uuid.New()
fmt.Println("UUID v4:", id.String())
idv1 := uuid.NewUUID()
fmt.Println("UUID v1:", idv1.String())
idv3 := uuid.NewMD5(uuid.NameSpaceDNS, []byte("example.com"))
fmt.Println("UUID v3:", idv3.String())
idv5 := uuid.NewSHA1(uuid.NameSpaceDNS, []byte("example.com"))
fmt.Println("UUID v5:", idv5.String())
}
Java 实现
import java.util.UUID;
public class UUIDGenerator {
public static void main(String[] args) {
UUID uuid4 = UUID.randomUUID();
System.out.println("UUID v4: " + uuid4.toString());
UUID namespaceDNS = UUID.fromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8");
UUID uuid3 = UUID.nameUUIDFromBytes("example.com".getBytes());
System.out.println("UUID v3: " + uuid3.toString());
}
}
Python 实现
import uuid
uuid4 = uuid.uuid4()
print("UUID v4:", str(uuid4))
uuid1 = uuid.uuid1()
print("UUID v1:", str(uuid1))
uuid3 = uuid.uuid3(uuid.NAMESPACE_DNS, 'example.com')
print("UUID v3:", str(uuid3))
uuid5 = uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com')
print("UUID v5:", str(uuid5))
JavaScript 实现
function generateUUIDv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
const r = Math.random() * 16 | 0;
const v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
function generateUUIDv1() {
const time = Date.now() - 12219292800000;
const timeHex = time.toString(16).padStart(12, '0');
const clockSeq = Math.floor(Math.random() * 0x3fff) | 0x8000;
const node = Array.from(crypto.getRandomValues(new Uint8Array(6)))
.map(b => b.toString(16).padStart(2, '0')).join('');
return `${timeHex.substr(8, 8)}-${timeHex.substr(4, 4)}-1${timeHex.substr(0, 3)}-${clockSeq.toString(16)}-${node}`;
}
console.log("UUID v4:", generateUUIDv4());
console.log("UUID v1:", generateUUIDv1());
PHP 实现
function generateUUIDv4() {
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
}
function generateUUIDv3($namespace, $name) {
$nhex = str_replace(array('-','{','}'), '', $namespace);
$nstr = '';
for($i = 0; $i < strlen($nhex); $i += 2) {
$nstr .= chr(hexdec($nhex[$i].$nhex[$i+1]));
}
$hash = md5($nstr . $name);
return sprintf('%08s-%04s-%04x-%04x-%12s',
substr($hash, 0, 8), substr($hash, 8, 4),
(hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x3000,
(hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,
substr($hash, 20, 12));
}
echo "UUID v4: " . generateUUIDv4() . "\n";
echo "UUID v3: " . generateUUIDv3('6ba7b810-9dad-11d1-80b4-00c04fd430c8', 'example.com') . "\n";