Example #1
0
        /// <summary>
        /// 获得机器码
        /// </summary>
        /// <returns></returns>
        public static string GetMachineCode()
        {
            string s = "";

            byte[] macAddress = Win32Util.GetMacAddress();
            for (int i = 0; i < macAddress.Length; i++)
            {
                s = s + macAddress[i].ToString();
            }
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_BIOS");

            foreach (ManagementObject obj2 in searcher.Get())
            {
                s = s + obj2["Name"];
                s = s + obj2["BuildNumber"];
                s = s + obj2["Manufacturer"];
                s = s + obj2["SMBIOSBIOSVersion"];
            }
            byte[] bytes = new UnicodeEncoding().GetBytes(s);
            long   hash  = 0L;

            TeaEncrypt.TeaHash2(bytes, bytes.Length, out hash);
            bytes = BitConverter.GetBytes(hash);
            return(string.Format("{0,2:X}{1,2:X}-{2,2:X}{3,2:X}-{4,2:X}{5,2:X}-{6,2:X}{7,2:X}", new object[] { bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7] }).Replace('O', 'P').Replace('L', 'A').Replace('I', 'C').Replace('1', 'Z').Replace(' ', 'K'));
        }