好記性不如爛筆頭啊,還是記錄一下!
不知道有沒(méi)有同學(xué)和我感覺(jué)一樣钠至,系統(tǒng)生成的UUID
在某些場(chǎng)景下覺(jué)得有點(diǎn)長(zhǎng)寝蹈,有點(diǎn)臃腫
UUID
都是128位的長(zhǎng)度:{1DAF9E46-26F6-4F52-BBA5-422FD0E09270}
怎么把他變短一些呢?
1. 去掉不必要的修飾符
通過(guò)去掉無(wú)意義的括號(hào)和減號(hào)來(lái)較少長(zhǎng)度:
var uuid = Guid.NewGuid().ToString("N");
這樣字符串就成為1daf9e4626f64f52bba5422fd0e09270
感覺(jué)還是蠻長(zhǎng)的。
2. 使用Base64編碼來(lái)表示
前面的表示方法中搅方,是使用的16機(jī)制來(lái)表示的,如果使用Base64編碼的話绽族,則可以進(jìn)一步壓縮字符串
var uuid = Convert.ToBase64String(guid.ToByteArray()).TrimEnd('=');
這樣字符串就成為Ivj6eZRx40+MTx2ZvnG8nA
看起來(lái)稍微好一點(diǎn)了姨涡。
3. 進(jìn)行轉(zhuǎn)換
long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
i *= ((int)b + 1);
var uuid = string.Format("{0:x}", i - DateTime.Now.Ticks);
這樣字符串就成為dfbf66216b6d506c
看起來(lái)更短了一些,感覺(jué)舒服多了就先這么用著了项秉。
以上說(shuō)法只是我的個(gè)人理解绣溜,如有不對(duì),歡迎留言指正娄蔼。