如何在c#中生成8字节的GUID值?

Lin*_*ney 5 .net c# asp.net

可能重复:
如何从GUID生成8个字节的唯一ID?

我需要一个唯一的密钥来识别通用的用户,密钥的长度只有8个字节,如何在c#中执行此操作?

Pet*_*erg 8

以下代码将生成加密唯一的8个字符串:

 using System; 
using System.Security.Cryptography;
using System.Text;

namespace JustForFun
{


    public class UniqueId
    {   
        public static string GetUniqueKey()
        {
            int maxSize = 8;
            char[] chars = new char[62];
            string a;
            a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            chars = a.ToCharArray();
            int size = maxSize;
            byte[] data = new byte[1];
            RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
            crypto.GetNonZeroBytes(data);
            size = maxSize;
            data = new byte[size];
            crypto.GetNonZeroBytes(data);
            StringBuilder result = new StringBuilder(size);
            foreach (byte b in data)
            { result.Append(chars[b % (chars.Length - 1)]); }
            return result.ToString();
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要加密唯一的密钥,那么它根本就不会过分.你的选择. (4认同)
  • 不要认为你需要 `chars.Length - 1`。N mod X 的最大值总是 X - 1。 (2认同)