Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GuidEx" /> struct.
        /// </summary>
        /// <param name="s">The s.</param>
        /// <param name="nameSpace">The name space.</param>
        public GuidEx(string s, string nameSpace)
        {
            Guid nameSpaceId;

            if (!Guid.TryParse(nameSpace, out nameSpaceId))
            {
                nameSpaceId = new GuidEx(nameSpace, Guid.Parse(NameSpaceKeyName));
            }
            var sha1  = Security.Cryptography.SHA1.Create();
            var bytes = Encoding.Default.GetBytes(s);
            var bs    = new List <byte>(nameSpaceId.ToByteArray());

            bs.AddRange(bytes);
            var hash  = sha1.ComputeHash(bs.ToArray());
            var data1 = BitConverter.ToInt32(hash, 0);
            var data2 = BitConverter.ToInt16(hash, 4);
            var data3 = (short)((short)(BitConverter.ToInt16(hash, 6) & 0x0FFF) | 0x5000);

            _data4_0 = (byte)((byte)(hash[8] & 0x3F) | 0x80);
            _data4_1 = hash[9];

            _data4_7 = hash[15];
            _data4_6 = hash[14];
            _data4_5 = hash[13];
            _data4_4 = hash[12];
            _data4_3 = hash[11];
            _data4_2 = hash[10];
            _data3   = data3;
            _data2   = data2;
            _data1   = data1;
        }
Exemple #2
0
        static void Main()
        {
            const string g = "065afd82-c667-4d85-9949-f9db33056ef0";
            var          l = new Guid(g);

            Console.WriteLine(l.ToString());
            var ex = new System.GuidEx(l);

            Console.WriteLine(ex.ToString());
            Console.WriteLine(ex.Version);

            var ex2 = new System.GuidEx("Potatis", "Månsken");

            Console.WriteLine(ex2.ToString());
            Console.WriteLine(ex2.Version);

            var ex3 = new System.GuidEx(g);

            Console.WriteLine(ex3.ToString());
            Console.WriteLine(ex3.Version);

            var ex4 = new System.GuidEx(g + g);

            Console.WriteLine(ex4.ToString());
            Console.WriteLine(ex4.Version);

            Console.ReadKey();
        }