<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                該功能由[`TrueLicense`](https://truelicense.namespace.global/)封裝而來 > License,即版權許可證,一般用于收費軟件給付費用戶提供的訪問許可證明。根據應用部署位置的不同,一般可以分為以下兩種情況討論: > * 1、應用部署在開發者自己的云服務器上。這種情況下用戶通過賬號登錄的形式遠程訪問,因此只需要在賬號登錄的時候校驗目標賬號的有效期、訪問權限等信息即可。 > * 2、應用部署在客戶的內網環境。因為這種情況開發者無法控制客戶的網絡環境,也不能保證應用所在服務器可以訪問外網,因此通常的做法是使用服務器許可文件,在應用啟動的時候加載證書,然后在登錄或者其他關鍵操作的地方校驗證書的有效性。 [TOC] # 生成密鑰 ``` @E: @mkdir key @cd key # 1、KeyTool工具來生成密鑰對 # validity:私鑰的有效期多少天 # alias:私鑰別稱A # keystore: 私鑰文件名B # storepass:私鑰庫密碼C # keypass:私鑰密碼D @keytool -genkeypair -keysize 1024 -validity 3650 -alias "privateKey" -keystore "privateKeys.store" -storepass "FastBoot" -keypass "gotv" -dname "CN=GOTV, OU=GOTV, O=GOTV, L=WUHAN, ST=HUBEI, C=CN" # 2、把私匙庫內的公匙導出到一個文件當中 # alias:私鑰別稱A # keystore:私鑰文件名B # storepass: 私鑰庫密碼C # file:證書名稱 @keytool -exportcert -alias "privateKey" -keystore "privateKeys.store" -storepass "FastBoot" -file "certfile.cer" # 3、再把這個證書文件導入到公匙庫 # alias:公鑰別稱E # file:證書名稱 # keystore:公鑰文件名F # storepass:私鑰庫密碼C echo y | keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.store" -storepass "FastBoot" @pause ``` 注意:上述內容復制后新建后綴名bat文件,點擊運行后會在當前目錄下面得到三個文件 * privateKeys.keystore:私鑰,這個甲方備份,續期時使用,不能泄露給別人。 * publicCerts.keystore: 公鑰,這個乙方使用,驗證license文件里面的信息的。 * certfile.cer:證書文件,可以刪掉。 # 測試示例 ``` @Test public void creator() { // 生效時間 Date issusedDate = new Date(); log.info("license generate issusedDate {}", format.format(issusedDate)); // 過期時間 Date expiryDate = DateUtils.addDays(issusedDate, 30); log.info("license generate expiryDate {}", format.format(expiryDate)); // 額外信息 LicenseParamsExtra licenseExtraModel = new LicenseParamsExtra(); // 構造參數 LicenseParams params = new LicenseParams() // 證書主題 .setSubject(subject) // 密鑰庫密碼 .setStorePass(storepass) // 私鑰路徑 .setPrivateKeysStorePath(LicenseHelperTest.class.getResource("privateKeys.store").getPath()) // 私鑰別稱 .setPrivateAlias("privateKey") // 私鑰密碼 .setPrivatePass(privatepass) // 證書生成路徑 .setLicensePath(LicenseHelperTest.class.getResource("license.lic").getPath()) // 證書生效時間 .setIssuedTime(issusedDate) // 證書失效時間 .setExpiryTime(expiryDate) // 額外信息 .setLicenseExtraModel(licenseExtraModel); // 生成證書 LicenseCreator licenseCreator = new LicenseCreator(params); log.info("license generate {}", licenseCreator.generateLicense() ? "success" : "fail"); } @Test public void verify() throws Exception { // 證書信息 LicenseVerify param = new LicenseVerify() // 證書主題 .setSubject(subject) // 公鑰路徑 .setPublicKeysStorePath("E:/license/publicCerts.store") // 公鑰別稱 .setPublicAlias("publicCert") // 密鑰庫密碼 .setStorePass(storepass) // 證書路徑 .setLicensePath("E:/license/license.lic"); // 安裝證書 param.install(); // 校驗證書 param.verify(); } ``` # 驗證結果 ``` [FastBoot][ INFO][08-22 16:42:04]-->[main: 1436][creator(LicenseHelperTest.java:33)] | - license generate issusedDate 2020-08-22 16:42:04 [FastBoot][ INFO][08-22 16:42:04]-->[main: 1440][creator(LicenseHelperTest.java:36)] | - license generate expiryDate 2020-09-21 16:42:04 [FastBoot][ INFO][08-22 16:42:04]-->[main: 1603][creator(LicenseHelperTest.java:61)] | - license generate success [FastBoot][ INFO][08-22 16:42:04]-->[main: 1401][install(LicenseVerify.java:92)] | - license install success [FastBoot][ INFO][08-22 16:42:04]-->[main: 1424][verify(LicenseVerify.java:115)] | - license verify success 2020-08-22 16:42:04 - 2020-09-21 16:42:04 ``` # 注意事項 ``` [FastBoot][ INFO][08-22 19:01:13]-->[main: 3158][install(LicenseVerify.java:92)] | - license install success [FastBoot][ INFO][08-22 19:01:13]-->[main: 3171][verify(LicenseVerify.java:115)] | - license verify success 2020-08-22 16:42:04 - 2020-09-21 16:42:04 ``` 后續會同步更新授權版本,與開源版如下不同 * 驗證證書,授權失敗終止進程 * 代碼混淆,混淆所有相關代碼
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看