准备工作
- 在使用之前,我们需要做一下准备工作,一是确定前后约定好的加密方式、加密密钥,二是进行简单的调试,查看下前端加密后传到后端,是否可以解密成功,后端返回的加密信息前端是否也可以解密成功。
- 若可以成功,那么我们就可以进行下一步操作,进行API加密对接测试了。
- 以AES加密方式进行测试,因为AES性能更高,在API调用方面更推荐使用AES。使用
AesUtil.genAesKey()
生成对应的密钥串:O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm
- 前端进行如下测试,以Saber为例
import crypto from "@/util/crypto";
export default class crypto {
static aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm";
static desKey = "jMVCBsFGDQr1USHo";
.............................................
}
const encrypt = crypto.encryptAES('{"id":1, "title":"测试标题", "category":1, "releaseTime":"2018-12-31 20:08:08"}', crypto.aesKey);
const decrypt = crypto.decryptAES(encrypt, crypto.aesKey);
const notice = JSON.parse(decrypt);
console.log(encrypt);
console.log(decrypt);
console.log(notice);
- 查看前端运行结果,准确无误(时间戳虽然较久远,但这是BladeX正式发布前夕的数据,具有纪念意义)
- 后端进行如下测试
public static void main(String[] args) {
String aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm";
String encrypt = AesUtil.encryptToBase64("{\"id\":1, \"title\":\"测试标题\", \"category\":1, \"releaseTime\":\"2018-12-31 20:08:08\"}", aesKey);
String decrypt = AesUtil.decryptFormBase64ToString(encrypt, aesKey);
Notice notice = JsonUtil.parse(decrypt, Notice.class);
System.out.println(encrypt);
System.out.println(decrypt);
System.out.println(notice);
}
- 查看后端运行结果,准确无误
- 前后端验证无误后,说明我们的加密工具类已经调试完毕,下一步就可以开始做对接配置了