WEB Server+APP通信API的一次一密验证

2014-02-24 3,712 0 开发! 大超超。

API调用时一次一密(基于毫秒的时间戳)作验证:

昨天写到要写一个C/S客户端远程调用WebServer上的API获取相对隐私的数据,就把实现思路和demo写一下:

(1)思路:双方制定同样一个基于时间戳的token生成算法,通信时Client传入tokenServer验证token,验证一致时即开始通讯,否则禁止访问。

(2)小demo

<?php
if( $_GET['t']=='api' ){
        if( $_GET['token']!=md5('^_^salt'.$_GET['time'].'hash') ){
                die("Access Denied\n");
        }
        else{
                // do something..
                echo "Welcome to DCC's Land!\n";
                die();
        }
}

以上是Server端判断来源,需要传入timetoken参数,核心思路是不公开token的生成方法,即使是使用md5函数,也不公开其参数细节。在Client端只要实现相应的算法即可:

md5('^_^salt' . $microtime . 'hash')

其中^_^salt、hash都可以随意定,只要不被hacker猜中即可。

(3)demo源代码及结果截图:

源代码:

140225测试token源代码.png

测试结果:

140225-token测试.png

 



声明: 本文由大超超。原创编译,转载请保留链接: http://www.thinkful.cn/archives/430.html