बेस 62 का उपयोग छोटे यूआरएल और संक्षिप्त URL के लिए किया जाता है। यह "अद्वितीय", मानव-पढ़ने योग्य आईडी बनाने के लिए एक अच्छी तरह से समझी गई विधि है। बेशक, आपको विशिष्ट पहचान सुनिश्चित करने के लिए बनाई गई आईडी को स्टोर करना होगा और निर्माण पर डुप्लिकेट की जांच करनी होगी। (जवाब के नीचे कोड देखें)
बेस 62 विशिष्टता मेट्रिक्स
आधार 62 में 5 चार्ट आपको 62 ^ 5 अद्वितीय आईडी = 916,132,832 (~ 1 बिलियन) देगा 10k आईडी पर प्रति दिन आप 91k + दिनों के लिए ठीक होंगे
आधार 62 में 6 चार्ट आपको 62 ^ 6 अद्वितीय आईडी = 56,800,235,584 (56+ बिलियन) प्रति दिन 10k आईडी पर आपको 5+ मिलियन दिनों के लिए ठीक होंगे
बेस 36 विशिष्टता मेट्रिक्स
6 चार्ट आपको 36 ^ 6 अद्वितीय आईडी = 2,176,782,336 (2+ बिलियन) देंगे
7 चार्ट आपको 36 ^ 7 अद्वितीय आईडी = 78,364,164,096 (78+ बिलियन) देंगे
कोड:
public void TestRandomIdGenerator()
{
for (int i=0; i<5; i++) Console.WriteLine(RandomIdGenerator.GetBase62(6));
for (int i=0; i<5; i++) Console.WriteLine(RandomIdGenerator.GetBase36(8));
}
public static class RandomIdGenerator
{
private static char[] _base62chars =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
.ToCharArray();
private static Random _random = new Random();
public static string GetBase62(int length)
{
var sb = new StringBuilder(length);
for (int i=0; i<length; i++)
sb.Append(_base62chars[_random.Next(62)]);
return sb.ToString();
}
public static string GetBase36(int length)
{
var sb = new StringBuilder(length);
for (int i=0; i<length; i++)
sb.Append(_base62chars[_random.Next(36)]);
return sb.ToString();
}
}
आउटपुट:
z5KyMg
wd4SUp
uSzQtH
UPrGAT
UIf2IS
QCF9GNM5
0UV3TFSS
3MG91VKP
7NTRF10T
AJK3AJU7