問題
有時會覺得某字串太長了,例如 GUID, 網址 …
那有什麼方式可以將它們變短嗎?
解法
以下以 GUID 為例子,
1.取 Byte Array 轉成 Base64 字串。
GUID 原始長度為 36 ,取 byte Array 的值轉成 Base64 ,長度就會短為 22。
這個做法的好處是可以再轉回 GUID
如果上述長度22還是覺得太長,那就要自行取一個不會重覆的值去對應到原本的 GUID 。
這個重覆的值,可以是流水號、timestamp、Hash 前段的值 …
還要判斷值是否重覆。
2.取 MD5 or SHA Hash 值,取後取前幾個字出來,或是取GetHashCode()
轉 Base64
3.隨機取亂數值
測試的程式如下,
1 | //dotnet add package Microsoft.AspNetCore.WebUtilities |
結果如下,
參考資源
A shorter, more user-friendly GUID
Make a URL Shortener in C#