日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

安全加簽

為保證通話安全性,在使用音視頻通話前,您需要對通話應用添加簽名,用于客戶端與流媒體服務端之間的安全性校驗。

安全加簽使用步驟

客戶端每次通話前,向業務服務端發送請求獲取簽名,然后傳入流媒體 SDK,并使用此簽名與流媒體服務端完成安全性校驗。完整的流程如下:

安全加簽

對應用進行安全加簽的步驟如下:

  1. 在 mPaaS 控制臺上獲取應用及音視頻通話相關參數。加簽代碼中需要使用到 mPaaS 應用和音視頻通話的相關參數,請在加簽前獲取 appId、workspaceId、bizName 及 key。

  2. 在您的 mPaaS 賬號已登錄的情況下,在業務服務端上按照規則使用密鑰生成簽名。

操作步驟

  1. 獲取 appId 及 workspaceId。

    1. 登錄 mPaaS 控制臺,進入目標應用。

    2. 單擊 下載 iOS 代碼配置 下載 Android 代碼配置,打開對應客戶端的 代碼配置 面板,在右側 代碼配置 面板中獲取 appId 及 workspaceId。

  2. 獲取應用的 bizName 及 key。bizName 為視頻應用業務 ID,key 為應用的私鑰。

    1. 登錄 mPaaS 控制臺,進入目標應用,單擊 音視頻通話 > 通話應用管理

    2. 在通話應用管理頁面獲取 bizName。

    3. 單擊 查看密鑰 獲取 key。bizname

  3. 在業務服務端生成簽名。

    1. 按照以下順序將相關參數拼接成待加密的字符串。

      String encryptStr = bizName + appId + workspaceId + uid + expireTime;

      其中:

      • appIdworkspaceIdbizName 為您在 mPaaS 控制臺獲取的實際值。

      • uidexpireTime 為用戶自定義參數。uid 為業務用戶 ID,由業務方傳入。expireTime 為簽名過期時間,單位為毫秒,由當前時間+有效期組成,示例如下。

        說明

        目前 uid 只支持英文字母、數字、下劃線的組合,且長度不超過 128 個字符。

        long expire = 5 * 60 * 1000L;// 簽名有效期(ms),比如 5 分鐘
        long expireTime = System.currentTimeMillis() + expire;// 簽名生效截止時間: 當前時間 + 有效期
    2. 使用 RSA 加密生成簽名,其中 key 為您在 mPaaS 控制臺獲取的密鑰。

      String sign = EncryptUtils.encryptByPrivate(encryptStr, EncryptUtils.getPrivateKey(key));// 加密字符串
      
      //RSA 私鑰加密
       public static String encryptByPrivate(String content, PrivateKey privateKey) throws Exception {
           Cipher cipher = Cipher.getInstance("RSA");
           cipher.init(Cipher.ENCRYPT_MODE, privateKey);
           return Base64.getEncoder().encodeToString(cipher.doFinal(content.getBytes("UTF-8")));
       }
      
        //將 Base64 編碼后的 RSA 私鑰字符串轉成 PrivateKey 實例
       public static PrivateKey getPrivateKey(String privateKey) throws Exception {
           byte[] keyBytes = Base64.getDecoder().decode(privateKey);
           PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
           KeyFactory keyFactory = KeyFactory.getInstance("RSA");
           return keyFactory.generatePrivate(keySpec);
       }