API接口鉴权及加密

前言

在为移动端做API接口时,Java服务器端对接口一般需要做两种处理。

1.对请求的接口在interceptor 做authorize鉴权

2.对请求过来的参数进行加密校验,防止参数在传递过程中被篡改。

鉴权

鉴权方式我所使用的到的基本上目前有以下三种:

1.session

2.cookie

3.oauth2.0

对于这三种方式,以后细讲下。在此不再多说。

加密

对于传输过程中防止参数被篡改,可以使用HTTPS来有效的增强安全性。

对于重要的数据传输,除了需要https来认证,还需要对传入参数进行加密解密的校验,达到双层保证。

一般处理思路:

将传入参数组合成字符串,然后做加密,得到加密的token值;调用接口时,同时将此值传入。服务器拿到此值,根据对应的加密方式解密比对。

来验证传入值的完整性。

关于加密方式,这里不再赘述。可根据接口的重要程度来选择。

如哈希算法md5、对称加密的DES、非对称的RSA或者一些加盐加密。

以md5为例,使用Java的SortedMap,对请求参数进行MD5,并传入。

	SortedMap<Object, Object> requestParams = new TreeMap<Object, Object>();

        requestParams.put("version", "1");
        requestParams.put("userName", "123456");
        requestParams.put("password", "123456");

        StringBuffer requestParamsStringBuffer = new StringBuffer();
        System.out.println("排序之后的Key Value:");
        for (Map.Entry<Object, Object> entry : requestParams.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
            requestParamsStringBuffer.append(entry.getKey() + "" + entry.getValue());
        }
        System.out.println(requestParamsStringBuffer.toString());
        String md5="";
        try {
            md5 = MD5.getMd5(requestParamsStringBuffer.toString());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        System.out.println("request params md5加密后:" + md5);
        //request params md5加密后:d42fdf5e525386c648b1303fa2aa5aab

        //当我们传入传入参数时,将token=d42fdf5e525386c648b1303fa2aa5aab 与其他参数平级传入,来防止请求被篡改

接下来,我们在接口文档中对token进行解释,并要求移动端此过程调用即可。


bingo!

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 对于您的问题,我可以回答。在Magic-api中,您可以通过添加接口鉴权来提高接口的安全性。您可以使用API密钥、JWT Token等方式进行接口鉴权,以确保只有授权用户才能访问接口。在具体实现上,您可以在请求头中添加相应的授权信息,并在服务端对该信息进行验证,以确定用户是否有访问该接口权限。 ### 回答2: 鉴权是用于验证API请求是否合法的一种安全措施。在使用magic-api添加接口鉴权时,可以采用以下步骤: 1. 生成密钥:首先,需要生成一个用于鉴权的密钥。可以使用常见的加密算法如HMAC-SHA256等来生成密钥。确保密钥具有足够的复杂度和安全性。 2. 将密钥配置到magic-api:在magic-api的配置文件中,添加一个鉴权相关的配置项,将生成的密钥配置到该项中。这个配置项可以是一个字符串,也可以是一个文件路径,存储密钥的值。 3. 添加鉴权中间件:在接口请求处理流程中,添加一个鉴权中间件。该中间件的作用是在请求到达API处理逻辑之前,对请求进行鉴权验证。通过读取配置的密钥,对请求的参数、头部信息等进行加密或签名,并与鉴权中间件请求中的加密或签名进行比对。 4. 验证鉴权结果:鉴权中间件会返回一个鉴权结果,通常可以是布尔值或者一个带有鉴权信息的对象。根据鉴权结果,可以决定是否允许继续处理该请求。如果鉴权失败,返回一个相应的错误信息,并拒绝该请求。 5. 日志记录:为了追踪和审计API请求的鉴权情况,可以在鉴权中间件中添加日志记录的功能。记录每个请求的鉴权结果、鉴权时间、请求参数等信息,以便后续的统计和分析。 通过以上步骤,可以在magic-api中添加接口鉴权功能,提高API的安全性和可靠性,确保只有经过合法鉴权的请求能够被正常处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mingjie1212

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值