<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://img.kancloud.cn/ff/c0/ffc049138ef79328c4c61f3c4885870f_426x229.gif) ## 文獻:GBT 38674-2020信息安全技術 應用軟件安全編程指南 ![](https://img.kancloud.cn/28/5c/285cab0556eb6108d06583d4ba0d3b19_916x598.png) ## 問題01:什么是CAPTCHA? 驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(**全自動區分計算機和人類的圖靈測試**)的縮寫,是一種區分用戶是計算機還是人的公共全自動程序。**可以防止:惡意破解密碼、刷票、論壇灌水**,有效防止某個黑客對某一個特定注冊用戶用特定程序**暴力破解**方式進行不斷的登錄嘗試。 1. 一種有效防止機器人及惡意用戶濫用網站或服務; 2. 防止惡意破解密碼、刷票、論壇灌水、刷頁; 3. 防止黑客暴力破解。 ## 問題02:嘗試編寫批量注冊賬號的惡意腳本。 1. 不斷寫入數據:計時器 2. 異步請求:Ajax ## 問題03:驗證碼圖像的src如何處理?如何點擊刷新? * [ ] 視圖請求控制器,控制器請求模型,模型提供圖像,控制器返回圖像 * [ ] 點擊更新驗證碼需要防止緩存(時間戳) ``` $("#code").attr("src","CreateImage?time="+new Date().getTime()); ``` ## 問題04:如何設置Servlet響應的內容是圖像? ``` response.setContentType("image/jpeg");//設置響應類型 ``` ## 問題05:如何創建圖像工具類?需要哪些成員? * [ ] 1. 驗證碼圖像--->提供給視圖 * [ ] 2. 驗證碼內容--->提供給登錄/注冊 ## 問題06:如何創建圖像? ``` BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ``` ## 問題07:使用安全的隨機算法。 ![](https://img.kancloud.cn/fe/b6/feb651c25c792f5eb987f64a099ded7a_989x315.png) ``` Random random = new SecureRandom(); ``` ## 問題08:實現對驗證碼進行干擾。 ![](https://img.kancloud.cn/4e/80/4e80fbe0683421d133adca6981ccb36c_174x73.png) ``` for (int i = 0; i < 10; i++) { int x1 = random.nextInt(width/2); int y1 = random.nextInt(height); int x2 = random.nextInt(width/2)+width/2; int y2 = random.nextInt(height); g.drawLine(x1, y1, x2, y2); } ``` ## 問題09:Servlet如何輸入圖像? ``` ImageIO.write(image, "jpeg", response.getOutputStream());//輸出圖像 ``` ## 問題10:中文在計算機中是如何表示的? **GB2312編碼范圍:A1A1-FEFE,其中漢字編碼范圍:B0A1-F7FE。** GB2312編碼是第一個漢字編碼國家標準,由中國國家標準總局1980年發布,1981年5月1日開始使用。GB2312編碼共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。同時,GB2312編碼收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682個全角字符。 **16-55區(B0-D7區:176-215,A1-FE位:161-254)收錄3755個一級漢字,按拼音排序。** ![](https://img.kancloud.cn/76/b7/76b747bb12369227d9d8d631fdb4c53e_1429x293.png) 56-87區收錄3008個二級漢字,按部首/筆畫排序。 ### 漢字的表示 **雙字節編碼** GB2312規定對收錄的每個字符采用兩個字節表示,**第一個字節為“高字節”,對應94個區;第二個字節為“低字節”,對應94個位**。 ## 問題11:如何隨機一個漢字? * [ ] 步驟1:一級漢字3755個,隨機生成一個數字,然后按照**每個區94個**字符進行整除或取余 * [ ] 步驟2:將起始區位碼轉為10進制,并加入到隨機值中 * [ ] 步驟3:將處理之后的10進制區位碼分別轉為高低兩個字節 * [ ] 步驟4:將字節數組按照編碼構造為String ![](https://img.kancloud.cn/57/c3/57c3444692afffa79c042506f2960963_1116x263.png) ## 問題12:增加對驗證碼的判斷(忽略大小寫)。 ``` codes.equalsIgnoreCase(captcha) ```
                  <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>

                              哎呀哎呀视频在线观看