저는 시스템 대 시스템 라이센스를 갖춘 상용 소프트웨어를 개발했습니다. 라이센스 목적으로 CPU 정보, 하드 디스크 정보, BIOS 및 기타 항목과 같은 다양한 매개변수를 사용하고 있습니다.
문제는 이러한 속성의 변경으로 인해 라이센스가 계속 만료된다는 것입니다. 고객이 라이센스가 작동하지 않는다고 계속 전화합니다.
다음을 사용하도록 라이센스를 변경했습니다.
- 프로세서 ID
- CPU 이름
- CPU 코어 수
- CPU 논리 프로세서 수
- 건축학
Windows를 새로 설치한 후 이러한 속성이 변경됩니까?
대부분의 시스템이 인터넷에 연결되어 있지 않기 때문에 서버 측 직렬 키 유효성 검사를 원하지 않습니다.
답변1
귀하가 나열한 항목 중 실제로는 고유한 데이터가 없습니다. 따라서 Windows를 새로 설치한 후 변경 여부는 실제 요구 사항에 거의 의미가 없습니다.
고유할 가능성이 가장 높은 것은 ProcessorID이지만 이마저도 고유하다는 보장은 없습니다.https://stackoverflow.com/questions/1101772/win32-processoris-processorid-unique-for-all-computers
이 정보는 고유하지 않기 때문에 라이센스 검증에 사용하기에 적합하지 않습니다.
다른 값은 일관되거나 드라이버에서 제공하는 정보(예: CPUName)에 따라 달라질 수 있습니다.
근본적인 문제는 라이센스 시스템의 기반이 될 적절한 항목을 선택하지 못했다는 것입니다.
답변2
상업용 라이선스를 잘 수행하려는 경우 다음 중 어느 것도 유효하지 않다고 생각합니다.
- 프로세서 ID
- CPU 이름
- CPU 코어 수
- CPU 논리 프로세서 수
- 건축학
어느 것도 고유하지 않지만 모두 바뀔 수도 있습니다.
모든 종류의 VM을 허용합니까? 그렇다면 갑자기 머신에 물리적 또는 논리적 프로세서 2개가 필요하면 어떻게 될까요?
ESXi/VmWare/VB가 실수로 프로세서 이름을 변경하거나 WMI가 중단되거나 이상해지면 어떻게 될까요?
컴퓨터가 오프라인인 경우 특히 많은 지원 요청이 발생하는 경우 소프트웨어 키를 선택할 것입니다. 그렇지 않으면 라이센스를 "수리"하고 결함이 있는 라이센스 모델이 중지되었다고 생각하는 작업을 정확하게 수행할 수 있습니다. 더블 워미.