热门问题
时间线
聊天
视角
產品密鑰
防盜版机制 来自维基百科,自由的百科全书
Remove ads
產品密鑰,常稱為序列號或密鑰,是一種製造商用來保護版權的防盜版措施。例如Microsoft Windows等的一些商業軟件需要經過製造商的網路驗證,防止用戶以同一組產品密鑰啟用多套軟體,一些軟件廠商也提供電話等方式供無法聯網的用戶激活軟件。大部分共享軟件都有產品密鑰,製造商也可以選擇使用其他方式來保護自己的產品版權。
![]() |

Remove ads
有效性
傳統的密鑰生成方式(即依靠數學方法生成產品密鑰)無法徹底遏制軟件版權侵犯行為,因為這些密鑰可能會被輕易分享。此外,隨着互聯網的普及及通信技術的飛速發展,密鑰面臨越來越多複雜的攻擊方式,例如無須使用密鑰進行破解或者利用產品密鑰生成器。
因此,軟件開發公司採取了額外的產品激活措施,以確保密鑰的有效性與安全性。一種方法是基於購買者計算機硬件的唯一區別來分配產品密鑰,因其特徵依賴於用戶的具體硬件,因此不易被仿造。另一種方法則是要求通過互聯網服務器進行一次性或周期性的密鑰驗證(例如,某些需要在線功能的遊戲每次用戶登錄時都進行身份驗證)。服務器能夠停用使用無效或已泄露的密鑰的客戶端軟件。雖然經過修改的客戶端可能偽裝過這些驗證措施,但服務器仍能拒絕接收這些客戶端的數據或信息交流。
示例
Windows 95零售密鑰格式為XXX-XXXXXXX。驗證時需滿足:
- 前三位不能為333、444、555、666、777、888或999;
- 後七位全部為0到8之間的數字,且其各位數字之和須能被7整除;
- 第四位不參與檢查。
- 滿足這些條件的密鑰(例如
000-0000000
)即為有效。
Windows 95 OEM密鑰格式為 XXXXX-OEM-XXXXXXX-XXXXX
。要求:
- 開頭的3位數字在0到366範圍內;
- 接下來的2位數字介於04到93之間;
- 隨後的3個字符必須為「OEM」;
- 緊跟的7位數字之和必須是7的倍數;其它部分不做校驗。
Windows XP零售密鑰激活時需要使用安裝 ID、產品 ID 和產品密鑰。
安裝 ID
- 為50位十進制數字,格式為多個6位數字組及最後2位數字(例如:
XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX
)。 - 每次運行
msoobe.exe
時都會重新生成。
校驗位
- 每組最後一位為校驗碼,由同組前5位相加、偶數位求和後再累加,最後取和除以7的餘數得到。
解碼與解密
去除校驗位後,得到一個 41 位十進制編碼的 136 位整數,以小端字節序存儲為字節數組。安裝 ID 中低16個字節經過加密(高1字節明文保存),使用專有的四輪 Feistel 密碼加密,輪函數基於 SHA-1,密鑰為4字節。一輪解密過程為:
L′ = R XOR First-8(SHA-1(L + Key))
R′ = L
最終,解密結果是16個明文字節,加上第17個未加密的字節(該字節隨後按四字節小端格式解釋為雙字,後跟一個單字節)。
Remove ads
常見破解方式
參見
![]() | 這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads