JAVA实战训练营Day.4 ——“请输入您的验证码”
目录
前言
一、Day.4的目标
二、任务所涉及的知识点(参考资料)
1.OTP动态令牌的原理
2.jar包的安装及使用
3.动态令牌源码
三、开始实战
1.了解动态令牌背后的OTP技术
2.实现二次验证码的校验通过
四、总结
前言
生活中,我们在登录一些软件或者注册信息时经常会被要求输入验证码,今天我们就来了解验证码背后的密码,并且实现用Java完成动态验证码的生成与校验。
一、Day.4的目标
1.了解动态令牌背后的OTP技术
2.实现二次验证码的校验通过
二、任务所涉及的知识点(参考资料)
1.OTP动态令牌的原理
https://blog.csdn.net/terrychinaz/article/details/112976265https://blog.csdn.net/terrychinaz/article/details/112976265
2.jar包的安装及使用
https://blog.csdn.net/hwt1070359898/article/details/90517291?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163553049216780255243863%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163553049216780255243863&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-90517291.pc_search_all_es&utm_term=idea%E5%AF%BC%E5%85%A5jar%E5%8C%85&spm=1018.2226.3001.4187https://blog.csdn.net/hwt1070359898/article/details/90517291?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163553049216780255243863%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163553049216780255243863&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-90517291.pc_search_all_es&utm_term=idea%E5%AF%BC%E5%85%A5jar%E5%8C%85&spm=1018.2226.3001.4187
3.动态令牌源码
百度网盘链接:https://pan.baidu.com/s/1ytgLmHxxXr_vuR2UTb5Jfghttps://pan.baidu.com/s/1ytgLmHxxXr_vuR2UTb5Jfg
提取码:1024
三、开始实战
1.了解动态令牌背后的OTP技术
因为任务1是知识目标,详细还请大家查阅参考资料1.
(理论学习得靠大家自己理解,不是我偷懒不写哦,大家多多包涵哈QAQ)。
参考资料1.:
https://blog.csdn.net/terrychinaz/article/details/112976265https://blog.csdn.net/terrychinaz/article/details/112976265至此任务1完成
2.实现二次验证码的校验通过
首先我们将源码导入IDEA中:
接着调用工具类OTPAuthUlt.generateSecret(64)方法生成秘钥secret,保存方便后续测试。
顺带填写自己要验证的账户名称(不要用中文,长度别太长)。
再调用工具类OTPAuthUlt.generateTotpURI(account, secret)方法生成OTPAUTH协议字符串。
借助免费(白嫖万岁!)的二维码生成网站(eg:http://cli.im)将生成的OTPAUTH协议链接变成二维码。
借助微信小程序——二次验证码,扫描网站生成的二维码。
生成的动态令牌795490出现在了小程序上,并且有圆圈显示倒计时失效的进度提示,将795490用code变量保存下来 。
最后调用工具类OTPAuthUlt.verify(secret, code)方法验证动态码是否正确。
动态口令TURE,二次验证码校验通过。
至此任务2完成
四、总结
今天的任务让我对验证码的感性认知上升到了理想认知(最近复习完马哲OVO),明白了OTP动态验证码的原理。自己也尝试成功完成了二次验证码的校验,开始逐渐感受到了Java语言的魅力,自己学习Java的路还很长,流年笑掷,未来可期吧!
(完结撒花)