最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)短信驗證碼的示例代碼

 更新時間:2023年03月31日 15:41:27   作者:宙哈哈  
Java是一種流行的編程語言,驗證碼是一種常用的網(wǎng)絡安全技術(shù)。Java發(fā)展至今,網(wǎng)上也出現(xiàn)了各種各樣的驗證碼,下面是用Java實現(xiàn)短信驗證碼的總結(jié),感興趣的可以了解一下

背景

Java是一種流行的編程語言,驗證碼是一種常用的網(wǎng)絡安全技術(shù)。Java發(fā)展至今,網(wǎng)上也出現(xiàn)了各種各樣的驗證碼,本人初學Java,下面是我用Java實現(xiàn)短信驗證碼的總結(jié)。

截圖展示

實現(xiàn)代碼

后臺接收前臺的kgCaptchaToken進行驗證,驗證成功執(zhí)行成功處理,驗證失敗返回錯誤代碼及信息。

package com.kyger;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

public class demo extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    public demo() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
    // 編碼
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");;
    response.setContentType("text/html; charset=utf-8");
        
    // 后臺處理
    if (request.getMethod().equals("POST")){
        String html, appId, appSecret, Token;
    
    // 設置 AppId 及 AppSecret,在應用管理中獲取
    appId = "appId";
    appSecret = "appSecret";
            
    // 填寫你的 AppId 和 AppSecret,在應用管理中獲取
    KgCaptchaSDK KgRequest = new KgCaptchaSDK(appId, appSecret);
            
    
    // 前端驗證成功后頒發(fā)的 token,有效期為兩分鐘
    KgRequest.token = request.getParameter("kgCaptchaToken");
    // System.out.print(KgRequest.token);
    
    // 填寫應用服務域名,在應用管理中獲取
    KgRequest.appCdn = "https://cdn.kgcaptcha.com";
    
    // 請求超時時間,秒
    KgRequest.connectTimeout = 5;
            
    // 用戶登錄或嘗試帳號,當安全策略中的防控等級為3時必須填寫,一般情況下可以忽略
    // 可以填寫用戶輸入的登錄帳號(如:request.getParameter("username"),可攔截同一帳號多次嘗試等行為
    KgRequest.userId = "kgCaptchaDemo";
            
    // request 對象,當安全策略中的防控等級為3時必須填寫,一般情況下可以忽略
    KgRequest.request = request;
    // java 環(huán)境中無法提供 request 對象,請分別定義:clientIp|clientBrowser|domain 參數(shù),即:
    // KgRequest.clientIp = "127.0.0.1";  // 填寫客戶端IP
    // KgRequest.clientBrowser = "";  // 客戶端瀏覽器信息
    // KgRequest.domain = "http://localhost";  // 你的授權(quán)域名或服務IP        
            
    // 發(fā)送驗證請求
    Map<String, String> requestResult = KgRequest.sendRequest();
    if("0".toString().equals(requestResult.get("code"))) {
        // 驗簽成功邏輯處理 ***
    
        // 這里做驗證通過后的數(shù)據(jù)處理
        // 如登錄/注冊場景,這里通常查詢數(shù)據(jù)庫、校驗密碼、進行登錄或注冊等動作處理
        // 如短信場景,這里可以開始向用戶發(fā)送短信等動作處理
        // ...
      
        html = "<script>alert('驗證通過');history.back();</script>";
    } else {
        // 驗簽失敗邏輯處理
        html = "<script>alert(\"" + requestResult.get("msg") + " - " + requestResult.get("code") + "\");history.back();</script>";
    }        
            
    response.getWriter().append(html);
    } else {
        response.sendRedirect("index.html");
    }        
}

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }

}

后端檢測

后臺接收數(shù)據(jù),同時對來源及應用進行檢測。

# 服務器黑名單檢測
if self.auth.client_blacklist():
    return self.r_code(20017)  # 服務器黑名單

# 驗簽次數(shù)限制檢測
excess = self.auth.excess(2)
if excess:
        return self.r_code(code=[20020, 20021, 20022][excess - 1])

# 來路域名檢測
if not self.kg["HTTP_REFERER"]: return self.r_code(20004)  # 域名不合法,無法獲取來路域名
if not self.auth.domain_auth(): return self.r_code(20005)  # 來源域名未授權(quán)

# 應用有效時間檢測
validity = self.auth.app_validity()
if validity[0] == 1: return self.r_code(20006)  # 授權(quán)未開始
if validity[0] == 2: return self.r_code(20007)  # 授權(quán)已結(jié)束

if self.auth.app_state(): return self.r_code(20008)  # 當前應用/域名被禁用

到此這篇關(guān)于Java實現(xiàn)短信驗證碼的示例代碼的文章就介紹到這了,更多相關(guān)Java短信驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)線程的暫停和恢復的示例詳解

    Java實現(xiàn)線程的暫停和恢復的示例詳解

    這幾天的項目中,客戶給了個需求,希望我可以開啟一個任務,想什么時候暫停就什么時候暫停,想什么時候開始就什么時候開始,所以本文小編給大家介紹了Java實現(xiàn)線程的暫停和恢復的示例,需要的朋友可以參考下
    2023-11-11
  • 使用kotlin編寫spring cloud微服務的過程

    使用kotlin編寫spring cloud微服務的過程

    這篇文章主要介紹了使用kotlin編寫spring cloud微服務的相關(guān)知識,本文給大家提到配置文件的操作代碼,給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Spring @Value的注解使用和原理解析

    Spring @Value的注解使用和原理解析

    @Value注解在Spring開發(fā)中是一個使用很頻繁的注解,在項目開發(fā)中,我們通常需要讀取配置文件中的一些信息,當然,@Value不單單能讀取配置文件,還能讀取系統(tǒng)屬性,還可以讀取其他bean的屬性,本章就來詳細介紹@Value注解的使用和對源碼進行分析
    2023-06-06
  • Java 手動解析不帶引號的JSON字符串的操作

    Java 手動解析不帶引號的JSON字符串的操作

    這篇文章主要介紹了Java 手動解析不帶引號的JSON字符串的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java實習--每天打卡十道面試題!

    java實習--每天打卡十道面試題!

    臨近秋招,備戰(zhàn)暑期實習,祝大家每天進步億點點!本篇文章準備了十道java的常用面試題,希望能夠給大家提供幫助,最后祝大家面試成功,進入自己心儀的大廠
    2021-06-06
  • 最新評論

    大方县| 寿阳县| 新竹市| 麻栗坡县| 云龙县| 许昌县| 集安市| 长宁县| 满洲里市| 阳江市| 石嘴山市| 弥勒县| 阿克| 洪江市| 泸西县| 毕节市| 祁阳县| 龙南县| 石狮市| 美姑县| 津市市| 邓州市| 扬州市| 广元市| 镇赉县| 张掖市| 乐都县| 南汇区| 江口县| 南陵县| 梁山县| 平谷区| 庆元县| 清涧县| 怀化市| 吴江市| 南澳县| 宁武县| 兴化市| 凤台县| 徐汇区|