发布时间:2018-03-25作者:laosun阅读(5606)
API 接口的加解密方式(不可逆),本问讲解的是如何使用MD5加密参数调用接口,不可逆。API接口的验证,保证系统的安全无破解。接口请求链接可还可根据自己的需要判断是否超时,是否失效
详细大家都开发过接口的调用。别管是调用别人,还是别人调用自己,都会少不了一些加密的方式,那么不可逆的加密方式,而且这个方式还是非常不错的。
那么下边我来讲解一下加密使用的流程。
博主使用的是Java语言,所以这里按照Java语言的使用方式来说,不过大部分语言都是互通的,理解这个思想即可!
作为被调用者,也就是我来开发接口,别人调用:
那么需要别人从我这申请appkey, 假设A公司调用我的接口,那么需要申请一个appkey,我这里就假设一下,
默认生成系统UUID, a2237d8dd38e48a686558201e203277f。
加密方式很简单,就是对 appkey+当前时间戳,合并MD5加密,生成了一个加密字符串,那么这个串就是我的接口加密验证值。
具体看例子:
//具体的请求参数如下: Long timestamp = System.currentTimeMillis(); String secret = EncryptionKit.md5Encrypt(Const.PROJECT_SECRET+"#"+timestamp)//这就是MD5加密 Long c_id = 1;//调用公司的id(明文,可根据需要设置可逆加密) String param ... 一些参数(明文)
请求参数大约需要这么多,其中timestamp、secret和c_id 是必须需要的。为什么呢,请看下边
当请求参数来时,我首先需要根据c_id查询对应的appkey。
然后根据appkey和传过来的timestamp进行二次加密,然后对比传过来的secret是否相同,如果一样,证明加密方式是没问题的,验证通过。
然后根据timestamp 和当前的时间对比,如果超过N秒或者N分钟则请求链接超时,需要重新进行加密。
如果都没问题,下边就是处理参数了,就这么简单!!!
当然你们也可以根据自己的需要进行修改,比如先从服务端获取token...,剩下的你们就自己扩展去吧!
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/655a9ab795db44ff91dd17422029a995.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。