소프트웨어에 대한 고유 코드 CPUID+ 마더보드 ID+ 메모리 ID 생성

2583 단어 C#
응용 소프트웨어를 개발할 때 비교적 많은 경우 그 장치의 관련 데이터를 확인하기 위해 유일한 코드를 만들어야 한다. 여기서 예를 들어 환경은 Windows 운영체제에서 유일한 코드를 만드는 방법이다.
계산에 참여하는 하드웨어 리소스 ID는 CPUID, 마더보드 ID 및 메모리 ID입니다.샘플 코드는 다음과 같습니다.

        /// 
        ///      ID(16 HASH  )
        /// 
        /// 
        private static string GetSensorID()
        {
            string sensorID = string.Empty;
            string basicID = GetCPUID() + GetMotherboardID() + GetPhysicalMemoryID();
            System.Security.Cryptography.MD5CryptoServiceProvider mD5CryptoServiceProvider = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] hashedBuff = mD5CryptoServiceProvider.ComputeHash(Encoding.UTF8.GetBytes(basicID));
            for (int i = 4; i < 12; i++)
            {
                sensorID += hashedBuff[i].ToString("X2");
            }
            return sensorID;
        }


        /// 
        ///   cpu   
        /// 
        /// 
        private static string GetCPUID()
        {
            var myCpu = new ManagementClass("win32_Processor").GetInstances();
            var serial = "";
            foreach (ManagementObject cpu in myCpu)
            {
                var val = cpu.Properties["Processorid"].Value;
                serial += val == null ? "" : val.ToString();
            }
            return serial;
        }

        /// 
        ///        
        /// 
        /// 
        private static string GetMotherboardID()
        {
            var myMb = new ManagementClass("Win32_BaseBoard").GetInstances();
            var serial = "";
            foreach (ManagementObject mb in myMb)
            {
                var val = mb.Properties["SerialNumber"].Value;
                serial += val == null ? "" : val.ToString();
            }
            return serial;
        }

        /// 
        ///         ,   CPUID   
        /// 
        /// 
        private static string GetPhysicalMemoryID()
        {
            string memoryID = "";
            ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PhysicalMemory");
            foreach (var prop in mos.Get())
            {
                memoryID = memoryID + prop["PartNumber"].ToString().Trim() + prop["SerialNumber"].ToString().Trim();
            }
            return memoryID;
        }

좋은 웹페이지 즐겨찾기