[记录]简单动态口令思路
首先先画个图看需求和功能
这是一个完整的功能实现的方法,是要服务器还要进行双重验证。因为现在没需求没必要去来回核验,就做一个本地的就行了,现在的思路是:
那第一步肯定是服务端生成token,有多种思路比如根据时间+加密+特征码生成两个动态口令然后服务端相互验证,我这里本地生成一个就行了,用也只用到了时间简单加密
<style>
body {background-image:url(https://blog.niuzhaohang.top/图片地址 );background-repeat:no-repeat;background-position:center top;}<br />
</style>
<!--<meta http-equiv="refresh" content="2">-->
<center><span style="font-family: verdana; font-size: x-large;">
<!--?php $code=date("i")+"25";//根据分钟+25生成一个加密码 $tcode=$code+$code2+$code3+$code4+$code5+$code6+$code7;//多个加密码相加(相乘相除取整数都行) echo $tcode;//这里也可以取$tcode的某几位(以后完善) $tima=date("i"); ?-->
</span></center>
body {background-image:url(https://blog.niuzhaohang.top/图片地址 );background-repeat:no-repeat;background-position:center top;}<br />
</style>
<!--<meta http-equiv="refresh" content="2">-->
<center><span style="font-family: verdana; font-size: x-large;">
<!--?php $code=date("i")+"25";//根据分钟+25生成一个加密码 $tcode=$code+$code2+$code3+$code4+$code5+$code6+$code7;//多个加密码相加(相乘相除取整数都行) echo $tcode;//这里也可以取$tcode的某几位(以后完善) $tima=date("i"); ?-->
</span></center>
中间删了一些加密的过程,很简单的加密。
第二步SSL加密传输,因为根本没有双重核验我觉得这一步没啥必要,配个证书了事
第三步手机查询,手机查询我用的是E4A一个很简单很老的一个安卓程式编辑器,毕竟只需要调用浏览框就可以实现基本功能了,有需求以后根据加密方法改进。
事件 主窗口.创建完毕()
浏览框1.跳转("https://blog.niuzhaohang.top/位置")
结束 事件
事件 时钟1.周期事件()
进度条1.位置=到文本(60-取秒(取现行时间()))
如果 取秒(取现行时间())=0 则
浏览框1.重载()
结束 如果
结束 事件
事件 按钮1.被单击()
浏览框1.重载()
结束 事件
事件 按钮2.被单击()
结束程序()
结束 事件
浏览框1.跳转("https://blog.niuzhaohang.top/位置")
结束 事件
事件 时钟1.周期事件()
进度条1.位置=到文本(60-取秒(取现行时间()))
如果 取秒(取现行时间())=0 则
浏览框1.重载()
结束 如果
结束 事件
事件 按钮1.被单击()
浏览框1.重载()
结束 事件
事件 按钮2.被单击()
结束程序()
结束 事件
第四步电脑核验,本该根据加密方法生成(以后记得继续学习补充上来)
易语言一个取网页文件就可以实现,需要精易模块
.版本 2
.支持库 internet
.子程序 _时钟1_周期事件
编辑框2.内容 = 到文本 (60 - 取秒 (取现行时间 ()))
进度条1.位置 = 60 - 取秒 (取现行时间 ())
.如果 (进度条1.位置 = 1)
时钟2.时钟周期 = 1000
.否则
.如果结束
.子程序 _时钟2_周期事件
返回文本 = 到文本 (HTTP读文件 (“https://blog.niuzhaohang.top/地址”))
code = 文本_取出中间文本 (返回文本, “size=5px>”, “</font>”)
编辑框3.内容 = code
时钟2.时钟周期 = 0
.子程序 _按钮1_被单击
时钟3.时钟周期 = 50
时钟4.时钟周期 = 100
.子程序 _时钟3_周期事件
.如果 (code = “”)
信息框 (“正在加载,请稍等一下”, 0, , )
.否则
.如果 (编辑框1.内容 = code)
载入 (窗口1, , 假)
窗口6.销毁 ()
时钟3.时钟周期 = 0
.否则
信息框 (“密码错误”, 0, , )
时钟3.时钟周期 = 0
.如果结束
.如果结束
.子程序 _时钟4_周期事件
时钟3.时钟周期 = 0
.支持库 internet
.子程序 _时钟1_周期事件
编辑框2.内容 = 到文本 (60 - 取秒 (取现行时间 ()))
进度条1.位置 = 60 - 取秒 (取现行时间 ())
.如果 (进度条1.位置 = 1)
时钟2.时钟周期 = 1000
.否则
.如果结束
.子程序 _时钟2_周期事件
返回文本 = 到文本 (HTTP读文件 (“https://blog.niuzhaohang.top/地址”))
code = 文本_取出中间文本 (返回文本, “size=5px>”, “</font>”)
编辑框3.内容 = code
时钟2.时钟周期 = 0
.子程序 _按钮1_被单击
时钟3.时钟周期 = 50
时钟4.时钟周期 = 100
.子程序 _时钟3_周期事件
.如果 (code = “”)
信息框 (“正在加载,请稍等一下”, 0, , )
.否则
.如果 (编辑框1.内容 = code)
载入 (窗口1, , 假)
窗口6.销毁 ()
时钟3.时钟周期 = 0
.否则
信息框 (“密码错误”, 0, , )
时钟3.时钟周期 = 0
.如果结束
.如果结束
.子程序 _时钟4_周期事件
时钟3.时钟周期 = 0
添加code和返回文本变量就OK了
但是这里边需要一个加密否则一个抓包啥都没了,用国产爱加密等软件都能加密,虽然也没啥用毕竟是直接取网页的
这就结束了,很简单的一个简单加密程序,可以用做本地密码保护之类的。
以后要学习并补充的:服务端相互核验,两个加密方法,防止抓包等等
遗留的问题:两个加密方法和服务端相互核验是怎么能保证令牌安全的?没有搞懂,按我这种思路的话只需知道一个加密方法就能破解令牌了。以后再说。
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.