zoukankan      html  css  js  c++  java
  • 16位GUID

    当我们想要获得一个唯一的key的时候,通常会想到GUID。这个key非常的长,虽然我们在很多情况下这并不是个问题。

    但是当我们需要将这个36个字符的字符串放在URL中时,会使的URL非常的丑陋。

    想要缩短GUID的长度而不牺牲它的唯一性是不可能的,但是如果我们能够接受一个16位的字符串的话是可以做出这个牺牲的。

    我们可以将一个标准的GUID 21726045-e8f7-4b09-abd8-4bcc926e9e28 转换成短的字符串 3c4ebc5f5f2c4edc

    下面的方法会生成一个短的字符串,并且这个字符串是唯一的。

    重复1亿次都不会出现重复的,它也是依照GUID的唯一性来生成这个字符串的。


    ///
    <summary> /// 根据GUID获取16位的唯一字符串 /// </summary> /// <param name="guid"></param> /// <returns></returns> public static string GuidTo16String() { long i = 1; foreach (byte b in Guid.NewGuid().ToByteArray()) i *= ((int)b + 1); return string.Format("{0:x}", i - DateTime.Now.Ticks); }
    /// <summary>  
    /// 根据GUID获取19位的唯一数字序列  
    /// </summary>  
    /// <returns></returns>  
    public static long GuidToLongID()  
    {  
        byte[] buffer = Guid.NewGuid().ToByteArray();  
        return BitConverter.ToInt64(buffer, 0);  
    } 
  • 相关阅读:
    JavaScript——引用类型
    react+express+mongodb搭建个人博客
    JavaScript——变量及其作用域
    CSS——盒子模型
    CSS——浮动及清除浮动
    hexo博客分支教训
    使用Node.js+Express 简易开发服务端实例
    发布Nuget包命令
    当心引用类型的“坑”
    sqlcmd相关
  • 原文地址:https://www.cnblogs.com/sky-net/p/8493276.html
Copyright © 2011-2022 走看看