API 接口的加解密方式(不可逆)

发布时间:2018-03-25作者:laosun阅读(5781)

API

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...,剩下的你们就自己扩展去吧!


12 +1

版权声明

 Java  源码

 请文明留言

0 条评论