当前位置: 首页 > wzjs >正文

织梦网站后台空白什么是静态网站

织梦网站后台空白,什么是静态网站,深圳市建设工程有限公司,wordpress建立网站随着网络游戏防沉迷系统的接入,实名认证验证也是一个必不可少的部分,网上有第三方的实名认证但基本上都收费,国家新闻出版署提供了免费的接口,不过需要自己去提交申请,获取应用标识 (APPID)、应用密钥 (Secret Key)、业…

随着网络游戏防沉迷系统的接入,实名认证验证也是一个必不可少的部分,网上有第三方的实名认证但基本上都收费,国家新闻出版署提供了免费的接口,不过需要自己去提交申请,获取应用标识 (APPID)应用密钥 (Secret Key)业务权限标识(BizId),并将请求服务器的IP设为白名单后,就可以调用https:// api.wlc.nppa.gov.cn/idcard/authentication/check接口来获取实名认真了。

这个接口中请求体body使用了AES-128/GCM + BASE64算法加密,签名使用了sha256。直接上完整的代码

import ("bytes""crypto/aes""crypto/cipher""crypto/rand""crypto/sha256""encoding/base64""encoding/hex""encoding/json""fmt""io""io/ioutil""net/http""sort""strconv""time"
)// 国家新闻出版署配置信息
type nppaInfo struct {AppId     string // 应用标识SecretKey string // 应用密钥BizId     string // 业务权限标识
}var nppa nppaInfo// 输入国家新闻出版署配置信息
func NppaInit(appId, secretKey, bizId string) {nppa = nppaInfo{AppId:     appId,SecretKey: secretKey,BizId:     bizId,}
}// 实名验证
// ai 	- 游戏内部成员标识,固定32位字符,一般使用 md5(用户ID)
// name - 实名信息中的姓名
// id 	- 实名信息中身份证号码
// 返回
// 		- result 是否验证成功
// 		- errcode 状态码
// 		- errmsg 状态描述
func NppaCheck(ai, name, id string) (result bool, errcode int, errmsg string ) {client := &http.Client{}// body 参数param := map[string]string{"ai":    ai,"name":  name,"idNum": id,}// AES-128/GCM + BASE64算法加密jsonParam, _ := json.Marshal(param)cipher, _ := gcmEncrypt(string(jsonParam))body, _ := json.Marshal(map[string]string{"data": cipher,})// post请求地址req, _ := http.NewRequest("POST", "https://api.wlc.nppa.gov.cn/idcard/authentication/check", bytes.NewReader(body))// header头验证信息headers := map[string]string{"appId":      nppa.AppId,"bizId":      nppa.BizId,"timestamps": strconv.FormatInt(time.Now().UnixNano()/1e6, 10),}// 签名headers["sign"] = sign(headers, string(body))headers["Content-Type"] = "application/json;charset=utf-8"for k, v := range headers {req.Header.Set(k, v)}// 请求resp, err := client.Do(req)if err != nil {return false, -1, "Http请求错误"}defer resp.Body.Close()if resp.StatusCode != 200 {return false, resp.StatusCode, "Http请求返回码错误"}str, err := ioutil.ReadAll(resp.Body)if err != nil {return false, -2, "Http请求返回数据为空"}var msg map[string]interface{}err = json.Unmarshal(str, &msg)if err != nil {return false, -3, "Http请求返回数据格式错误"}ec, ok := msg["errcode"]if !ok {return false, -3, "Http请求返回数据格式错误"}errcode = int(ec.(float64))if errcode != 0 {errmsg, _:= msg["errmsg"]return false, errcode, errmsg.(string)}data, ok := msg["data"]if !ok {return false, -3, "Http请求返回数据格式错误"}r, ok := data.(map[string]interface{})["result"]if !ok {return false, -3, "Http请求返回数据格式错误"}status, ok := r.(map[string]interface{})["status"]if !ok {return false, -3, "Http请求返回数据格式错误"}errcode = int(status.(float64))if errcode == 0{return true, 0, "认证成功"} else if errcode == 1 {return false, errcode, "认证中"}else {return false, errcode, "认证失败"}
}func gcmEncrypt(originalText string) (string, error) {// 需要解码key, _ := hex.DecodeString(nppa.SecretKey)block, err := aes.NewCipher(key)if err != nil {return "", err}aesGcm, err := cipher.NewGCM(block)if err != nil {return "", err}// 向量nonce := make([]byte, aesGcm.NonceSize())if _, err := io.ReadFull(rand.Reader, nonce); err != nil {return "", err}cipherText := aesGcm.Seal(nonce, nonce, []byte(originalText), nil)// encode as base64 stringencoded := base64.StdEncoding.EncodeToString(cipherText)return encoded, nil
}func sign(headers map[string]string, body string) string {var data stringvar keys []string// key排序for k := range headers {keys = append(keys, k)}sort.Strings(keys)// 拼接for _, k := range keys {data = data + k + headers[k]}data = nppa.SecretKey + data + body// 对字符串进行sha256哈希h := sha256.New()h.Write([]byte(data))sum := h.Sum(nil)return hex.EncodeToString(sum)
}

调用

func main() {// 初始化NppaInit("test-appId","2836e95fcd10e04b0069bb1ee659955b","test-bizId")// 使用userId := "123456"name := "岑吾"id := "xxxxxxxxxxxxxxxxxx"h := md5.New()h.Write([]byte(userId))ok,code,msg := NppaCheck(hex.EncodeToString(h.Sum(nil)), name, id)fmt.Println(ok,code,msg)
}

详细返回参数可见网络游戏防沉迷实名认证系统


文章转载自:

http://nYbAvzx4.pLpqf.cn
http://xDM4WB2W.pLpqf.cn
http://gTngfVF8.pLpqf.cn
http://aU3XmdRd.pLpqf.cn
http://JcvRXOzs.pLpqf.cn
http://MnNuu8TS.pLpqf.cn
http://zXj2y9j4.pLpqf.cn
http://vbyIIJgz.pLpqf.cn
http://0nx8wxwl.pLpqf.cn
http://WNud8rAi.pLpqf.cn
http://zRdLm3xj.pLpqf.cn
http://v7LHYXdw.pLpqf.cn
http://1Jm2e6xa.pLpqf.cn
http://bDK5PpQH.pLpqf.cn
http://evqqNscj.pLpqf.cn
http://PYGjxazQ.pLpqf.cn
http://2CpYJd7F.pLpqf.cn
http://ENB5GySD.pLpqf.cn
http://zkFecjww.pLpqf.cn
http://HBkd6EcD.pLpqf.cn
http://UwTzaIee.pLpqf.cn
http://kYWrMY5v.pLpqf.cn
http://qHQAXA79.pLpqf.cn
http://VOJTHnI5.pLpqf.cn
http://JiYPbQ0j.pLpqf.cn
http://Ute23wzC.pLpqf.cn
http://spiAAcjE.pLpqf.cn
http://V7EoJfdX.pLpqf.cn
http://vSXppLt2.pLpqf.cn
http://uffVd7sN.pLpqf.cn
http://www.dtcms.com/wzjs/754717.html

相关文章:

  • 旅游网站建设分析 需求wordpress 网址 建站
  • 《网站设计与建设》电子书用vue做的网站模板
  • 虚拟主机 2个网站小广告清理
  • 网站app软件下载安装西安博网站建设
  • 网站建设思路方法淘宝网站建设杭州
  • 北京网站建设的服务深圳建站公司价格
  • 展示型企业网站设计方案做lgoo的网站一般有哪些
  • 免费建站的网站能做影视网站吗上海市建设工程信息报送网站
  • 成都教育网站建设公司价格ppt网站建设
  • 电商企业网站建设清河做网站哪里好
  • wordpress 文章属性湖南关键词优化推荐
  • 安徽住房与城乡建设门户网站做一个网站需要多少费用
  • 集团门户网站建设方案美篇app制作教程
  • php网站开发wordpress多域名配置
  • 英语外贸网站建设国外的技术社区
  • 企业建站公司案例如何建设简易网站
  • 网站制作公司杭州做游戏制作 网站
  • 临沂网站建设兼职wordpress下载及安装
  • 手机可以设计网站吗局域网搭建wordpress慢
  • 做集团网站的dede后台做两个网站
  • 携程企业网站建设的思路下列属于网页制作平台的是
  • 深圳外贸建站模版软件商店软件下载
  • 网站底部放什么蒙狼科技建设网站好不好
  • wordpress做个人教学网站聚成网站建设
  • 欧美做暖网站无线网络管理系统
  • 一般网站建设费用捡个校花做老婆是哪个网站的
  • 清洁公司网站建设做线上网站的风险分析
  • wordpress运营笔记seo是什么意思为什么要做seo
  • asp.net 网站管理系统金属材料网站建设
  • 学做彩票网站有哪些直播app开发一个需要多少钱