我開發了一個商業軟體,具有系統到系統的許可。出於許可目的,我使用了各種參數,例如 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 邏輯處理器數量
- 建築學
沒有一個是獨一無二的,但它們都可以改變。
你們允許任何類型的虛擬機器嗎?如果是這樣,如果機器突然需要 2 個實體或邏輯處理器,會發生什麼事?
如果 ESXi/VmWare/VB 意外更改了處理器名稱,或者 WMI 中斷/變得奇怪,該怎麼辦?
如果機器離線,我可能會選擇軟體金鑰,特別是當它導致許多支援電話時。否則,您可能會「修復」許可證,並按照錯誤的許可證模型認為正在停止的方式進行操作。雙重打擊。