【學習筆記】激活碼方式注冊的實現原理述


https://blog.csdn.net/qq_27489007/article/details/100599143

1. 軟件授權方式

激活碼方式

用戶安裝系統后,軟件系統會根據用戶機器的關鍵信息(例如:MAC地址、CPU序列號、硬盤序列號等等)生成一個注冊憑證(也可稱為注冊碼),用戶將這個注冊憑證發送給軟件供應商,供應商通過注冊憑證生成一個激活碼。用戶輸入激活碼,軟件系統完成授權。
不論是采用哪種方式來進行授權,理論上都是可以被破解的。只要破解者發現了軟件授權機制和原理則任何保護機制都將化為烏有。因此,只能夠通過選擇復雜的算法和機制來增加破解者的破解難度,從而在在一定的時間內保證軟件不被盜用。通常在行業應用軟件領域,我們選用激活碼方式進行軟件授權管理。

2.激活碼方式注冊的實現原理述

RSA算法(非對稱加密算法)是一個廣泛用於加密和數字簽名的算法,是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數據加密標准。RSA算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰可以適用用戶名+序列號、在線注冊、激活碼等軟件保護方式。

image

RSA算法實現激活碼注冊方式的原理如下:
1. 生成一對公鑰E和私鑰D(供軟件注冊模板和注冊機使用);
2. 用戶安裝軟件后,軟件注冊模板提取用戶機器指紋信息(如:MAC地址、CPU序列號、硬盤序列號等),並通過其它的編碼算法(如BASE64)生成一個申請碼C;
3. 用戶將申請碼C發給軟件開發商。軟件開發商通過注冊機采用私鑰D加密申請碼C后生成激活碼F。軟件供應商將激活碼F發給用戶。
4. 用戶輸入激活碼F,軟件注冊模板采用公鑰E對激活碼F解碼后生成G(即:用戶機器特征信息),然后軟件注冊模板提取用戶機器的特定信息后進行編碼。將編碼的結果與G進行比較,如果相等則用戶合法,完成授權,否則授權失敗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM