我正在爲使用C++/Obj-C編寫的Windows和Mac的小型跨平臺產品開展工作。我被要求實施相同的許可模塊。這項任務是爲我們所有產品引入許可的非常雄心勃勃的項目的一部分。最後,我們將有一個完整的授權計劃,我們可以向客戶出售支持年度續訂,許可證級別等的許可證。我的問題是,我不知道實施許可證檢查程序的第一件事。任何人都可以指出我的一些方法嗎?我可以學習哪些開源許可模塊?執行許可檢查庫
Q
執行許可檢查庫
13
A
回答
16
我使用了部分密鑰驗證(PKV)系統,並且我已經在C#中用PHP生成器實現了這一點。谷歌會提出各種點擊,解釋和實現;但布蘭登·斯塔格斯(在Delphi儘管!)寫了一個很好的概述,在這裏:
PKV的工作原理是利用哈希一起編碼在關鍵的某些信息(許可類型,序列號的產品,日期等)用戶名和散列的編碼信息。許多關鍵實際上由多個char哈希組成。這個想法是,你只能檢查這些散列的一個子集。發佈的確切子集可以隨着時間的推移而改變,以確保某種安全性並防止某些類型的逆向工程。
我也會加密密鑰來幫助混淆許可證中每個字符的含義。否則,具有多個密鑰的人可能會確定某些字符位置意味着某些事情(「哦,字符3-4是序列號」)。這可能是你的盔甲的一個裂縫!
您開發的任何許可證系統都不完善。這將是可以破解的,如果你的產品很受歡迎,將會被破解。然而,有一個強有力的論據認爲,許可證制度的存在是爲了讓誠實的人保持誠實,併爲稍不誠實的人產生足夠的障礙 - 但並不是那麼多的障礙,以至於太多的不便(例如,我通常反對硬件鎖定)。無論如何,那些攻擊你的系統的人可能不會爲此付出代價。
相關問題
- 1. 執行前的許可證檢查
- 2. 如何從ListActivity執行Android許可檢查
- 3. HomeKit:檢查許可
- 4. 檢查日期數據庫並執行
- 5. 觸發器執行檢查存儲庫
- 6. 執行企業許可證
- 7. 如何檢查附加到可執行文件的靜態庫?
- 8. Python:檢查可執行文件
- 9. 檢查可執行文件是用C#
- 10. 軟許可證檢查
- 11. 許可證檢查循環?
- 12. Android的檢查許可
- 13. 查詢可執行
- 14. 的Javascript檢查文件是否可讀可寫或可執行
- 15. 在構建用於許可證檢查的.NET應用程序之前,從引用的類庫執行方法
- 16. 檢索可執行文件
- 17. javascript檢查執行時間
- 18. 在XSL中執行檢查
- 19. 執行前檢查條件
- 20. Android - 檢查執行動作
- 21. 檢查是否執行cronjob
- 22. 不允許重複記錄,並檢查數據庫可用
- 23. 許可執行的「sp_delete_database_backuphistory」爲用戶
- 24. 數據庫查詢執行
- 25. 多久檢查一次許可證?
- 26. Xcode檢查許可證標題
- 27. 彈簧安全許可programatic檢查
- 28. 使用Python檢查FME許可證
- 29. 創建和檢查許可證編號
- 30. 最佳實踐,以檢查許可
對於最後一段來說,它永遠不會是完美的,但如果它足夠硬,那就沒事了。 –
我愛你的解釋,特別是最後一段。它總結了一切! –