Guid formaat string van een string input extensie. (Nederlands (Dutch))

Guid formaat string van een string input extensie.

Comments

NOTE: Apart from English (and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.

Wednesday, 07 August 2024

//

Less than a minute

Kleine berichten FTW

Kleine maar potentieel nuttige oplossing voor een probleem dat ik had. Namelijk, hoe een GUID te genereren van een string input waar de Guid is altijd geldig maar uniek voor een bepaalde invoer string.

Ik had dit nodig voor mijnRSS-feedgeneratorwaar ik een GUID wilde genereren voor elk item in de feed dat herhaalbaar maar uniek was voor elk item.

Het blijkt dat deXxHash128is hier een beetje perfect voor omdat het altijd een 128 bit (of 16 Byte) hash geeft. Dit betekent dat het gebruikt kan worden om een GUID te genereren uit een string input zonder 'Array'.

     public  static string ToGuid(this string  name)
    {
        var buf = Encoding.UTF8.GetBytes(name);
        var guid = XxHash128.Hash(buf);
        var guidS =  string.Format("{0:X2}{1:X2}{2:X2}{3:X2}-{4:X2}{5:X2}-{6:X2}{7:X2}-{8:X2}{9:X2}-{10:X2}{11:X2}{12:X2}{13:X2}{14:X2}{15:X2}", 
            guid[0], guid[1], guid[2], guid[3], guid[4], guid[5], guid[6], guid[7], guid[8], guid[9], guid[10], guid[11], guid[12], guid[13], guid[14], guid[15]);
        return guidS.ToLowerInvariant();
    }

Dit is een eenvoudige extensie methode die een string input neemt en een GUID teruggeeft.XxHash128is van deSystem.IO.Hashingnamespace.

U kunt natuurlijk gebruik maken van elk hashing algoritme dat geeft een 128 bit hash.XxHash128is gewoon een goede keuze als het is snel en geeft een goede verdeling van hash waarden.

U kunt ook eennew Guid(<string>)van dit om een werkelijke Guid die kan worden gebruikt in een database of andere GUID specifieke gebruik gevallen te krijgen.

logo

©2024 Scott Galloway