如何保证API接口安全?( 三 )

签名工具类SignUtil:
public class SignUtil {/*** 签名计算* @param method* @param url* @param body* @param timestamp* @param nonce* @param appSecret* @return*/public static String getSignature(String method, String url, String body, String timestamp, String nonce, String appSecret){//第一层签名String requestStr1 = method + url + body + appSecret;String signResult1 = DigestUtils.md5Hex(requestStr1);//第二层签名String requestStr2 = appSecret + timestamp + nonce + signResult1;String signResult2 = DigestUtils.md5Hex(requestStr2);return signResult2;}}签名计算,可以换成hamc方式进行计算,思路大致一样 。
三、小结上面介绍的token和接口签名方案,对外都可以对提供的接口起到保护作用,防止别人篡改请求,或者模拟请求 。
但是缺少对数据自身的安全保护,即请求的参数和返回的数据都是有可能被别人拦截获取的,而这些数据又是明文的,所以只要被拦截,就能获得相应的业务数据 。
对于这种情况,推荐大家对请求参数和返回参数进行加密处理,例如RSA、AES等加密工具 。
同时,在生产环境,采用https方式进行传输,可以起到很好的安全保护作用!




推荐阅读