license即使用許可證,只有被授權的方才可用合法使用相關產品。
一般通過乙個或多個唯一標識來標識軟體使用方,比如(計算機mac位址、主機板序列號和cpu序列號,或者是軟體安裝序列號、使用者uuid)。
當然license也不是一定安全,破解偽造license也是最大的安全問題。
1、授權註冊碼申請
格式:(系統名稱 + 伺服器硬體唯一標識 + 當前時間 )加密
系統名稱:名稱隨意,比如專案名稱、客戶名稱、含義自定義(這裡只是帶指)。
對拼接後的明文資料,按照指定規則進行加密生成密文(授權註冊碼)
2、授權碼生成
授權註冊碼一般儲存為檔案或者資料庫中。通過授權註冊碼,反解析為未加密前的明文資料。新增授權截至時間,最後進行加密生成授權碼。
授權碼格式:(授權註冊碼 + 授權截至時間) 加密
ps:授權註冊碼和授權碼都是採用可逆的加密演算法,兩者間相差授權截至時間。
3、授權碼有效性驗證
三個步驟只要有乙個不通過,則授權無效或過期。
3.1、授權碼申請階段
軟體安裝,根據伺服器硬體等資訊,生成授權註冊碼和授權碼。
授權註冊碼用於後續授權碼生成,一般不會改變。
授權碼用於軟體授權使用及授權截至時間。後續軟體授權過期續租,軟體使用方可根據授權碼獲取最新的授權碼。
3.2、授權碼驗證階段
授權碼合法使用校驗,只有合法的授權碼才可以允許軟體使用方使用。
為什麼採用aes|des + rsa 加密方式?
rsa演算法本身要求加密內容也就是明文長度m必須在指定訪問內,超出會提示報錯。可以採用分段加密
方式來解決,但是效率過低,一般不建議採用。
優先選擇方案:使用對稱金鑰(比如aes/des等加解密方法)加密資料,然後使用非對稱金鑰(rsa加解密金鑰)加密對稱金鑰。
Apache Shiro 基於許可權授權
授權即是訪問控制,是對資源訪問的管理過程。它將判斷使用者在應用程式中是否對資源有相應的訪問許可權。但現在很多程式都使用隱式的角色進行訪問控制,定義乙個角色來代表一系列的操作。當需要對某一操作進行授權驗證時,只需判斷是否擁有該角色即可。行為已被乙個單獨的名字所蘊含。這種角色許可權相對簡單 模糊,不利於...
基於shiro授權過程
1 對subject進行授權,呼叫方法ispermitted permission串 2 securitymanager執行授權,通過modularrealmauthorizer執行授權 3 modularrealmauthorizer執行realm 自定義的customrealm 從資料庫查詢許可...
軟體保護與軟體授權
軟體保護的概念是站在開發商的角度出發的,它強調的是軟體加密和不被盜版。常用的軟體保護方式有軟體加 密和硬體加密兩種。軟體授權的概念則是同時考慮了開發商和終端使用者兩方面的感受而提出的。授權 在名字上弱化了 保護 給終端使用者帶來的對立情緒,強調 了軟體的按許可使用。一.軟體保護 軟體保護的概念是站在...