要求
- 生成6位随机验证码
- 向第三方接口发送手机号和验证码,由第三方接口发送验证码到指定手机
- 将验证码和发送时间存入session,供controller层比对验证码是否正确和有效
简介
- 发送短信需要借助第三方接口,目前提供短信服务的第三方平台有很多,首选秒嘀科技,注册即送10元约200条免费试用优惠,但需要企业认证才能发送短信。阿里云也提供短信服务,但必须充值才能使用。
注册秒嘀科技
- 访问秒嘀科技:http://www.miaodiyun.com/,注册账号
- 登录,点击用户中心->账户管理,获取ACCOUNT_SID和AUTH_TOKEN(后者需要验证)。
- 点击配置管理->验证码短信模板->新建模板,填写信息后提交审核,很快能好
术语
- SMS:Short Message Service,短信服务
- sig: 一种有效的数字签名,以便在手机设备上运行。
- sid:Security Identifiers,是用户、组合计算机账户的唯一身份标识。
MessageDigest类
- 为应用程序提供信息摘要算法,如MD5或SHA算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
- MessageDigest.getInstance(String algorithm):返回实现指定摘要算法的MessageDigest对象。
- update(byte[]):指定要生成摘要的信息,返回值为void。
- digest():返回计算出来的哈希摘要,是byte[],通常与update方法同用。
- digest(byte[]):可以不用update方法。
- isEqual(byte[],byte[]):两个摘要是否相同,做简单的字节比较。
代码
- 短信发送方面不需要导什么包,因为我们是用网络访问的方式调用第三方接口,只需要程序发起请求,不需要额外引入依赖。
-
发送短信工具类
/** * @Author haien * @Description 发送短信服务工具类 * @Date 2019/2/10 * @Param * @return **/ public class SmsUtil { //第三方平台接口 private static final String QUERY_PATH= "https://api.miaodiyun.com/20150822/industrySMS/sendSMS";