重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、吴川网络推广、小程序开发、吴川网络营销、吴川企业策划、吴川品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供吴川建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
2、APP端将接收到的access_key和session_id保存起来
3、当APP端调用接口传输数据时,将所传数据和access_key使用加密算法生成签名signature,并将signature和session_id一起发送给服务器端。
4、服务器端接收到数据时,使用session_id从session中获取对应的access_key,将access_key和接收到的数据使用同一加密算法生成对应signature,如果生成的签名和接收到的signature相同时,则表明数据合法
api就是接口,其实说白了就是你平时写的控制器方法,只不过这个方法的数据要加密,要验证,是用来把这个方法的url给app或者客户端以及别人来调的。这个方法就是api接口
今天有一个朋友问我thinkphp的这个问题,刚好百度搜索到你这个问题。已经解决。就帮你解答一下这个问题。
首先我尝试在入口文件封装一个加密函数,我用php des 加密,然后在配置文件config.php调用。然后在控制器里面使用,打印配置文件:dump(C());//输出所有的配置文件信息, 虽然能看到正确的数据用户名和密码,但是会报错。失败告终。
我说一下我的解决方法。很简单。
1:把配置文件里面的用户名,密码,数据库名瞎写一写,别人看到你的代码的配置文件看到的就是错误的数据库名和密码了。比如:
'DB_NAME' = 'SB', // 数据库名
'DB_USER' = 'ni_da_ye', // 用户名
'DB_PWD' = 'da_da_bi', // 密码
在每个控制器文件里面。加入一段代码。
比如你的IndexController.class.php文件。加下面的代码。
/* 初始化方法*/
public function __construct(){
parent::__construct();
C("DB_NAME",decrypt('712349721937491237'));//数据库名,
C('DB_USER',decrypt('712349721937491237'));//用户名
C('DB_PWD',decrypt('712349721937491237'));//密码
}
看清楚了吗?
decrypt()这个函数就是我封装的一个加密函数,亲自测试没有错误。可能会牺牲一些性能。但是保证了用户名,密码,数据库名没有泄露。甚至你都可以把数据库连接地址也加密一下。希望能帮到你。
PHP加密函数可以考虑用des,aes这些可逆加密。别用什么md4,md5.