UUID: considerazioni per la modifica di n caratteri di una versione 4 in una parola


0

36 UUID di personaggi sono fantastici. Ma la mia intuizione è che nel mio uso personale e domestico, non ho bisogno di tutta l'unicità fornita da 36 personaggi. Ma potrei non pensare a tutte le situazioni in cui entrano in gioco.

Vorrei eliminare alcuni dei personaggi in un UUID versione 4, sostituendoli con qualcosa che posso capire. Ad esempio, sostituire 4 caratteri nell'UUID con cafe. Questo mi aiuterebbe durante lo scripting. Ad esempio, poiché i contenitori crypto-LUKS non accettano etichette (di cui sono a conoscenza), sono bloccato nella gestione dei loro UUID (a meno che non scriva regole udev )

Ciò aumenta il rischio di collisioni. Ma se la mia sfera personale per i prossimi 5 anni coinvolge 10.000 UUID, il rischio sembra trascurabile, penso. Ma potrei sbagliarmi.

Qualcuno con esperienza con questo?


2
Nota formale: stai parlando di una rappresentazione canonica di 36 caratteri? In tal caso, sostituire 6 caratteri con nightsè impossibile perché queste lettere non sono cifre esadecimali. Puoi andare con bad-1deaperò.
Kamil Maciorowski

lol, e buon punto, riveduta la domanda da nightsa cafe, ecc.
user217893,

Risposte:


0

Sommario:

Invece di provare a "hackerare" gli UUID in questo modo, suggerisco di utilizzare invece etichette di filesystem, etichette di partizione, nomi di volume logici o variabili di script, poiché questi strumenti sono tutti progettati per il tipo di cose che stai suggerendo. I dettagli di ciò che funzionerebbe meglio dipendono dalle tue esigenze particolari, che non sono chiare al 100% dalla tua domanda.

Raccomandazione estesa:

Un identificatore univoco universale (UUID) è un numero a 128 bit (16 byte) , tipicamente espresso in una stringa esadecimale che, con caratteri "-" tra determinati elementi, arriva a 36 caratteri. Questi non sono caratteri alfanumerici, comunque; sono numeri esadecimali. Pertanto, non puoi inserire le lettere che ti piacciono, solo valori esadecimali. Anche a parte il fatto che sfideresti lo spirito degli UUID facendo come suggerisci, il limite di usare solo le prime sei lettere dell'alfabeto latino è un grosso problema con la tua idea.

Gli identificatori univoci globali (GUID) sono essenzialmente gli stessi degli UUID, ma standard diversi usano nomi diversi e ci sono varianti di entrambi. Il tuo riferimento alle udevregole mi fa pensare che stai usando Linux, in cui gli UUID sono in genere assegnati ai filesystem mentre i GUID sono associati alle partizioni (quando si utilizza lo schema di partizionamento GPT). In Linux, i GUID delle partizioni vengono spesso definiti (in /etc/fstab, ecc.) Utilizzando l' PARTUUIDidentificatore.

Sia i filesystem che le partizioni GPT possono avere etichette oltre a UUID / GUID. Poiché sembra che tu voglia rendere i tuoi identificatori comprensibili a te come essere umano, ti consiglio di utilizzare le etichette anziché gli UUID / GUID. In molti strumenti di Linux, le etichette del filesystem sono indicate usando l' LABELidentificatore e le etichette di partizione usano l' PARTLABELidentificatore.

Non è chiaro dalla tua domanda esattamente dove vuoi usare l'identificatore (tu insinui in uno script, ma non dici cosa fa quello script), quindi non so se usare LABELo lo PARTLABELavrebbe funzionato per te, ma potresti voler esaminare questo. Inoltre, non escluderei la scrittura di udevregole, se necessario, per ottenere collegamenti simbolici a dispositivi che usano etichette; udevle regole non sono così difficili da scrivere e se risolvono il tuo problema, scrivere tali regole sarebbe meglio che hackerare i valori UUID / GUID in violazione degli standard pertinenti.

Si noti, tuttavia, che le etichette delle partizioni sono una funzionalità di GPT, ma non di MBR. Pertanto, se si utilizza l'MBR, le etichette delle partizioni non saranno un'opzione. È possibile passare a GPT (anche senza reinstallare il sistema operativo, anche se sarebbe necessario reinstallare il caricatore di avvio) se ciò sarebbe utile, però.

Un'altra possibilità potrebbe essere quella di riconfigurare il sistema per utilizzare LVM. Ad esempio, utilizzo LVM su uno dei miei computer e ho LV specifici crittografati all'interno di LVM. In questa configurazione, potrebbe essere un LV crittografato /dev/mapper/myvg-homee la versione decrittografata è /dev/mapper/myvg-home_crypt. Poiché i LV sono denominati e generalmente indicati in questo modo, otterrai un riferimento più comprensibile per "libero", per così dire.

Un'altra opzione: fai riferimento agli script. Se stai scrivendo script che fanno riferimento a partizioni in base ai valori UUID / GUID, puoi assegnare tali valori alle variabili, come in:

HOME_PART="c5424f69-5016-48bd-adf4-76bd95b1f6bc"

I dettagli della sintassi dipenderebbero ovviamente dal tuo linguaggio di scripting, ma questo è il nocciolo dell'idea. Saresti quindi in grado di fare riferimento ad HOME_PARTaltrove nello script. Se lo script doveva essere eseguito su più sistemi, potresti essere in grado di trovare un modo per identificare partizioni specifiche e mappare i loro valori UUID / GUID - diciamo, analizzando /etc/fstabper estrarre i dati rilevanti dai punti di montaggio. Questo potrebbe essere un approccio estremamente flessibile, a seconda delle tue esigenze specifiche.

Sia che tu usi etichette di filesystem, etichette di partizione, nomi LV o variabili di script, otterrai i vantaggi del set completo (più o meno) di caratteri alfanumerici e non dovrai occuparti nemmeno di un UUID esadecimale parziale / Valore GUID. Alcuni personaggi potrebbero essere vietati a causa dei limiti pratici degli standard in questione, ma almeno potresti usare qualsiasi numero ASCII e lettere che ti piacciono.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.