<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] > [參考](https://www.jianshu.com/p/ad410836587a) ## AccessKey&SecretKey (開放平臺) ### 請求身份 為開發者分配`AccessKey`(開發者標識,確保唯一,可由用戶填入)和 SecretKey(由算法生成,需要足夠復雜) ### 防止篡改 步驟 1. 按照請求參數名的字母升序排列非空請求參數(包含AccessKey),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串stringA; 2. 在stringA最后拼接上Secretkey得到字符串stringSignTemp; 3. 對stringSignTemp進行MD5運算,并將得到的字符串所有字符轉換為大寫,得到sign值。 說明 * 請求攜帶參數**AccessKey**和**Sign**,只有擁有**合法的身份**AccessKey和正確的簽名Sign才能放行。這樣就解決了身份驗證和參數篡改問題,即使請求參數被劫持,由于獲取不到SecretKey(**僅作本地加密使用,不參與網絡傳輸**),無法偽造合法的請求 ### 重放攻擊(可選,推薦) timestamp+nonce方案 timestamp:生成當前時間戳 nonce:生成唯一標識符 服務器判斷在timestamp的 15分鐘內,是否存在nonce,存在則拒絕,不存在則通過,并記錄 nonce(可以使用redis的expire,新增nonce的同時設置它的超時失效時間為15分鐘 ### 實現 `請求接口:http://api.test.com/test?name=hello&home=world&work=java` #### 客戶端 1. 生成當前時間戳`timestamp=now`和唯一隨機字符串`nonce=random` 2. 按照請求參數名的字母**升序排列非空**請求參數(包含AccessKey) `stringA="AccessKey=access&home=world&name=hello&work=java&timestamp=now&nonce=random";` 3. 拼接密鑰SecretKey `stringSignTemp="stringA&SecretKey=secret";` 4. MD5并轉換為大寫 `sign=MD5(stringSignTemp).toUpperCase();` 5. 最終請求 `http://api.test.com/test?name=hello&home=world&work=java&timestamp=now&nonce=nonce&sign=sign;` #### 服務端 1. 是否包含 timestamp , nonce , AccessKey , sign 2. 是否滿足 timestamp - now < timeout 3. 驗證簽名 Sign 是否正確 4. 查詢 AccessKey 是否存在 5. 查看 nonce 是否存在,存在則報錯,不存在則記錄,并放行
                  <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>

                              哎呀哎呀视频在线观看