Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menjana Pengecam Unik Global (GUID/UUID) dalam JavaScript?

Bagaimanakah Saya Boleh Menjana Pengecam Unik Global (GUID/UUID) dalam JavaScript?

DDD
DDDasal
2024-12-20 16:27:20442semak imbas

How Can I Generate Globally Unique Identifiers (GUIDs/UUIDs) in JavaScript?

Mencipta Pengecam Unik Global dalam JavaScript

Dalam bidang JavaScript, tugas menjana pengecam unik global (GUID) atau pengecam unik universal (UUID) sering timbul. Pengecam ini berfungsi sebagai perwakilan unik untuk entiti atau sumber dalam sistem, memastikan keunikan mereka.

Pendekatan 1: API Pelayar Asli untuk Persekitaran Selamat

Jika aplikasi anda beroperasi dalam lingkungan konteks selamat (localhost, HTTPS), kaedah crypto.randomUUID() menawarkan pilihan yang boleh dipercayai. API ini disokong secara meluas dalam penyemak imbas moden dan masa jalan JS. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ketersediaannya terhad kepada konteks selamat.

Pendekatan 2: Modul uuid

Untuk senario di mana konteks selamat tidak tersedia atau jika keserasian dengan platform warisan diperlukan, modul uuid membentangkan penyelesaian yang mantap. Modul ini telah menjalani ujian yang meluas dan menyediakan sokongan untuk menjana UUID pelbagai versi.

Pendekatan 3: Penjanaan Tersuai

Jika kedua-dua pendekatan di atas tidak memenuhi keperluan anda, pertimbangkan kaedah tersuai ini:

function uuidv4() {
  return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
    (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
  );
}

console.log(uuidv4());

Kaedah ini bergantung pada fungsi crypto.getRandomValues ​​untuk memperkenalkan rawak ke dalam UUID. Ia berulang melalui set aksara yang telah ditetapkan dan memanipulasinya berdasarkan nilai kriptografi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Pengecam Unik Global (GUID/UUID) dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Perjalanan Reaksi Saya: Hari 12Artikel seterusnya:Perjalanan Reaksi Saya: Hari 12