### 简介 ###
接口加密主要是为了防止接口被攻击以及参数的加密,该部分代码在核心库组件中。
使用到的类为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());
}
});
```