微信小程序端主动获取用户手机号时需要后端把加密的数据解密才能得到用户手机号

需要注意的点:

1:key  密钥  前端每获取一次用户openid就会刷新一次。所以在解密数据前要保证密钥为最新的。

微信文档链接地址:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#加密数据解密算法


package mainimport ("crypto/aes""crypto/cipher""encoding/base64""encoding/json""fmt"
)
// CBC 模式
//解密
/**
* rawData 原始加密数据
* key  密钥
* iv  向量*/
func Dncrypt(rawData, key, iv string) (string, error) {data, err := base64.StdEncoding.DecodeString(rawData)key_b, err_1 := base64.StdEncoding.DecodeString(key)iv_b, _ := base64.StdEncoding.DecodeString(iv)if err != nil {return "", err}if err_1 != nil {return "", err_1}dnData, err := AesCBCDncrypt(data, key_b, iv_b)if err != nil {return "", err}return string(dnData), nil
}// 解密
func AesCBCDncrypt(encryptData, key, iv []byte) ([]byte, error) {block, err := aes.NewCipher(key)if err != nil {panic(err)}blockSize := block.BlockSize()if len(encryptData) < blockSize {panic("ciphertext too short")}if len(encryptData)%blockSize != 0 {panic("ciphertext is not a multiple of the block size")}mode := cipher.NewCBCDecrypter(block, iv)mode.CryptBlocks(encryptData, encryptData)// 解填充encryptData = PKCS7UnPadding(encryptData)return encryptData, nil
}//去除填充
func PKCS7UnPadding(origData []byte) []byte {length := len(origData)unpadding := int(origData[length-1])return origData[:(length - unpadding)]
}
func main() {str := "****qU9A=="key := "******P5Y2b9SfejeA=="iv := "*****FLgzU09FtANlRw=="src, err := Dncrypt(str, key, iv)fmt.Println(err)var s = map[string]interface{}{}json.Unmarshal([]byte(src), &s)fmt.Printf("== %+v", src)fmt.Printf("cc== %+v", s)}

解密后的数据:

{"phoneNumber": "13580006666","purePhoneNumber": "13580006666","countryCode": "86","watermark":{"appid":"APPID","timestamp": TIMESTAMP}
}

附一篇加解密的文章:http://blog.studygolang.com/2013/01/go%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86%E4%B9%8Bdes/

微信小程序获取手机号 -加密数据解密算法-golang版本相关推荐

  1. 微信小程序获取手机号并解密详解

    微信小程序获取手机号并解密 1 获取手机号 2 解密 2.1 获取所需数据 2.2 解密返回数据 1 获取手机号 获取手机号的过程官方文档有详细的介绍.参考官方链接 要注意的是,此功能只对非个人且完成 ...

  2. 微信小程序 获取手机号 JavaScript解密示例代码详解

    刚开始开发微信小程序的时候,想着实现手机验证码登入,后来查阅资料得知,发给用户的短信是要自己付费的.后来想想,微信获取用户的手机号一样可以保证手机号码的真实性,因为手机号既然可以绑定微信,那么肯定是被 ...

  3. 微信小程序获取手机号,前端解密手机号,微信sessionKey过期,微信手机号授权

    项目场景: 本文主要: 官方文档 官方文档指出需要先进行login基础授权,获取code,然后后台换取sessionKey ,注意这个==sessionKey ==是会过期的,但是有时候你可能会发现就 ...

  4. java写微信小程序答辩问题_java微信小程序开发中加密解密算法总结

    详解java微信小程序开发中加密解密算法 一.概述 微信推出了小程序,很多公司的客户端应用不仅具有了APP.H5.还接入了小程序开发.但是,小程序中竟然没有提供Java版本的加密数据解密算法.这着实让 ...

  5. uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限

    方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...

  6. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

  7. 微信小程序获取手机号登录流程

    微信小程序获取手机号登录流程 首先前端使用wx.login 获取code wx.login({success(res) {if (res.code) {that.setData({code: res. ...

  8. php 微信小程序获取手机号_实例讲解微信小程序获取手机号授权用户登录功能...

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写.本文主要给大家分享微信小程序获取手机号授权用户登录功能,需要的朋友参考下吧, ...

  9. 微信小程序获取手机号登录流程(个人开发者账号不支持)

    微信小程序获取手机号登录流程 所需条件 1. 非个人开发者账号 2. AppID+AppSecret 流程思路 **注意:** 代码实现 常见问题 所需条件 1. 非个人开发者账号 获取手机号文档 这 ...

最新文章

  1. oracle 12C(12.2.0.1)安装-plm系统(一)
  2. Node.Js从零开始搭建数据管理后台 (一)
  3. 获得北大新材料学院夏令营offer的艰险历程(附面试答辩PPT)
  4. 液滴型单细胞测序技术比较(二)
  5. 50matches:更准确的搜索引擎
  6. 「 Luogu P2574 」 XOR的艺术——线段树
  7. 用好这个数据分析工具,BI平台建设少费一半力
  8. Web 前端开发初学者十问集锦(2)
  9. Mac中必不可少的软件——Tuxera NTFS
  10. OpenLayers 在Vue中增删改
  11. 编写安装配置DNS服务脚本
  12. mma7660.c的改进
  13. 获取UWP应用的三种方式
  14. AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述
  15. 局域网打印机共享外网
  16. 卡内基梅隆大学计算机专业录取难,卡内基梅隆大学计算机录取
  17. 云计算:程序员重回个人英雄时代
  18. ocdma相干非相干_相干成像和非相干成像有什么区别?
  19. 百家号运营技巧:如何发布图集获得高收益呢?
  20. 科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等

热门文章

  1. 上拉电阻、下拉电阻功能
  2. 阿里云服务器公网带宽价格表2023更新了
  3. C++设计模式——命令模式(command pattern)
  4. 海思3536板子在使用wifi时,开启支持工具 wireless_tools 和 iptables 的内核支持选项时,板子会崩溃的解决方法
  5. 足球比赛的一些模糊的规则
  6. node js中的req.body,req.query,req.params取参数
  7. 计算机快捷键怎么设置方法,打开软件快捷键怎么设置 电脑软件快捷键设置教程-电脑教程...
  8. iMeta期刊 第2卷第2期封底:盘古开天辟地
  9. 2019BDCI互联网金融新实体发现 | 思路与代码框架分享(单模第一,综合第二)...
  10. 乐高幻影忍者系列诞生十周年,推出复刻经典套装与时尚联名系列