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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                **快速生成base64編碼圖片驗證碼字符串.base64圖形驗證碼(captcha)為golang而設計.** 支持多種樣式,算術,數字,字母,混合模式,語音模式. Base64是網絡上最常見的用于傳輸8Bit字節代碼的編碼方式之一。Base64編碼可用于在HTTP環境下傳遞較長的標識信息, 直接把base64當成是字符串方式的數據就好了 減少了http請求;數據就是圖片; 為APIs微服務而設計 **為什么base64圖片 for RESTful 服務** ~~~ Data URIs 支持大部分瀏覽器,IE8之后也支持. 小圖片使用base64響應對于RESTful服務來說更便捷 ~~~ **安裝golang包** ~~~ go get -u github.com/mojocn/base64Captcha ~~~ 對于中國大陸Gopher`go get golang.org/x/image`失敗解決方案: ~~~shell mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/image.git ~~~ **創建圖像驗證碼** ~~~ import "github.com/mojocn/base64Captcha" func demoCodeCaptchaCreate() { //config struct for digits //數字驗證碼配置 var configD = base64Captcha.ConfigDigit{ Height: 80, Width: 240, MaxSkew: 0.7, DotCount: 80, CaptchaLen: 5, } //config struct for audio //聲音驗證碼配置 var configA = base64Captcha.ConfigAudio{ CaptchaLen: 6, Language: "zh", } //config struct for Character //字符,公式,驗證碼配置 var configC = base64Captcha.ConfigCharacter{ Height: 60, Width: 240, //const CaptchaModeNumber:數字,CaptchaModeAlphabet:字母,CaptchaModeArithmetic:算術,CaptchaModeNumberAlphabet:數字字母混合. Mode: base64Captcha.CaptchaModeNumber, ComplexOfNoiseText: base64Captcha.CaptchaComplexLower, ComplexOfNoiseDot: base64Captcha.CaptchaComplexLower, IsShowHollowLine: false, IsShowNoiseDot: false, IsShowNoiseText: false, IsShowSlimeLine: false, IsShowSineLine: false, CaptchaLen: 6, } //創建聲音驗證碼 //GenerateCaptcha 第一個參數為空字符串,包會自動在服務器一個隨機種子給你產生隨機uiid. idKeyA, capA := base64Captcha.GenerateCaptcha("", configA) //以base64編碼 base64stringA := base64Captcha.CaptchaWriteToBase64Encoding(capA) //創建字符公式驗證碼. //GenerateCaptcha 第一個參數為空字符串,包會自動在服務器一個隨機種子給你產生隨機uiid. idKeyC, capC := base64Captcha.GenerateCaptcha("", configC) //以base64編碼 base64stringC := base64Captcha.CaptchaWriteToBase64Encoding(capC) //創建數字驗證碼. //GenerateCaptcha 第一個參數為空字符串,包會自動在服務器一個隨機種子給你產生隨機uiid. idKeyD, capD := base64Captcha.GenerateCaptcha("", configD) //以base64編碼 base64stringD := base64Captcha.CaptchaWriteToBase64Encoding(capD) fmt.Println(idKeyA, base64stringA, "\n") fmt.Println(idKeyC, base64stringC, "\n") fmt.Println(idKeyD, base64stringD, "\n") } ~~~ **驗證圖像驗證碼** ~~~ import "github.com/mojocn/base64Captcha" func verfiyCaptcha(idkey,verifyValue string){ verifyResult := base64Captcha.VerifyCaptcha(idkey, verifyValue) if verifyResult { //success } else { //fail } } ~~~ **使用golang搭建API服務** ~~~go // example of HTTP server that uses the captcha package. package main import ( "encoding/json" "fmt" "github.com/mojocn/base64Captcha" "log" "net/http" ) //ConfigJsonBody json request body. type ConfigJsonBody struct { Id string CaptchaType string VerifyValue string ConfigAudio base64Captcha.ConfigAudio ConfigCharacter base64Captcha.ConfigCharacter ConfigDigit base64Captcha.ConfigDigit } // base64Captcha create http handler func generateCaptchaHandler(w http.ResponseWriter, r *http.Request) { //parse request parameters //接收客戶端發送來的請求參數 decoder := json.NewDecoder(r.Body) var postParameters ConfigJsonBody err := decoder.Decode(&postParameters) if err != nil { log.Println(err) } defer r.Body.Close() //create base64 encoding captcha //創建base64圖像驗證碼 var config interface{} switch postParameters.CaptchaType { case "audio": config = postParameters.ConfigAudio case "character": config = postParameters.ConfigCharacter default: config = postParameters.ConfigDigit } //GenerateCaptcha 第一個參數為空字符串,包會自動在服務器一個隨機種子給你產生隨機uiid. captchaId, digitCap := base64Captcha.GenerateCaptcha(postParameters.Id, config) base64Png := base64Captcha.CaptchaWriteToBase64Encoding(digitCap) //or you can do this //你也可以是用默認參數 生成圖像驗證碼 //base64Png := captcha.GenerateCaptchaPngBase64StringDefault(captchaId) //set json response //設置json響應 w.Header().Set("Content-Type", "application/json; charset=utf-8") body := map[string]interface{}{"code": 1, "data": base64Png, "captchaId": captchaId, "msg": "success"} json.NewEncoder(w).Encode(body) } // base64Captcha verify http handler func captchaVerifyHandle(w http.ResponseWriter, r *http.Request) { //parse request parameters //接收客戶端發送來的請求參數 decoder := json.NewDecoder(r.Body) var postParameters ConfigJsonBody err := decoder.Decode(&postParameters) if err != nil { log.Println(err) } defer r.Body.Close() //verify the captcha //比較圖像驗證碼 verifyResult := base64Captcha.VerifyCaptcha(postParameters.Id, postParameters.VerifyValue) //set json response //設置json響應 w.Header().Set("Content-Type", "application/json; charset=utf-8") body := map[string]interface{}{"code": "error", "data": "驗證失敗", "msg": "captcha failed"} if verifyResult { body = map[string]interface{}{"code": "success", "data": "驗證通過", "msg": "captcha verified"} } json.NewEncoder(w).Encode(body) } //start a net/http server //啟動golang net/http 服務器 func main() { //serve Vuejs+ElementUI+Axios Web Application http.Handle("/", http.FileServer(http.Dir("./static"))) //api for create captcha //創建圖像驗證碼api http.HandleFunc("/api/getCaptcha", generateCaptchaHandler) //api for verify captcha http.HandleFunc("/api/verifyCaptcha", captchaVerifyHandle) fmt.Println("Server is at localhost:3333") if err := http.ListenAndServe("localhost:3333", nil); err != nil { log.Fatal(err) } } ~~~ **運行demo代碼** ~~~ cd $GOPATH/src/github.com/mojocn/captcha/_examples go run main.go ~~~ **訪問** `http://localhost:777`
                  <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>

                              哎呀哎呀视频在线观看