ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### 简介 ### 接口加密主要是为了防止接口被攻击以及参数的加密,该部分代码在核心库组件中。 使用到的类为TMEncryptBean,包含随机字符串与时间戳参数,请确保每次请求中都新建一个对象。 主要方法: ``` Map<String, String> getEncryptHeader(); 返回加密的随机字符串与时间戳,需要将该部分添加到http请求的头部中。 ``` ``` String encrypt(String data); 传入需要加密的参数,返回加密后的数据,该方法用于发送参数时的加密。 ``` ``` String decrypt(String data); 传入需要解密的参数,返回解密后的数据,该方法用于接收参数时的解密。 ``` 注意:加解密使用的并不是同一个key,因此客户端加密的数据只能服务器端解密,服务器端加密的数据只能客户端解密。 ### 使用方法 ### ``` OkHttpClient client = new OkHttpClient(); Request.Builder builder = new Request.Builder().url(url); //新建加密类对象 final TMEncryptBean tmEncryptBean = new TMEncryptBean(); //添加头部 Map<String, String> encryptHeader = tmEncryptBean.getEncryptHeader(); Set<String> keys = encryptHeader.keySet(); for (String key : keys) { builder.addHeader(key, encryptHeader.get(key)); } //参数加密 FormBody formBody = new FormBody.Builder().add("code", tmEncryptBean.encrypt("1234")).build(); builder.post(formBody); Request request = builder.build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { String body = response.body().string(); Gson gson = new Gson(); JsonObject jsonObject = gson.fromJson(body, JsonObject.class); //参数解密 String data = tmEncryptBean.decrypt(jsonObject.get("data").getAsString()); } }); ```