C# Guid转Base64字符串

Guid有16个字节,生成的字符串去掉-也有32个字符

如果将这16个字节中途转成base64字符串,长度就能缩短到22,缩短了将近三分之一

发现一个小问题,Base64有+/这2个符号,url编码的时候可能会把+给整成空格,因此需要把他们转成其他字符,省的出问题

扩展方法:

public static class GuidExtend {
        /// <summary>
        /// 将guid转成Base64字符串
        /// </summary>
        public static string ToBase64(this Guid guid) {
            //Guid有16字节,转Base64要3的倍数,因此补2个字节,共18个字节,每3个字节4字符,共18/3*4=24字符,
            //因为补了2个字节,所以最后2个字符固定是==,可以直接忽略
            return Convert.ToBase64String(guid.ToByteArray()).TrimEnd('=').Replace('+', '_').Replace('/', '-');
        }
    }

使用方法:

string id = Guid.NewGuid().ToBase64();

 

posted @ 2023-06-01 16:11  WmW  阅读(100)  评论(0编辑  收藏  举报