👋 哈喽!我是 小奏 , 欢迎关注我的公众号【小奏技术】
基于用户的请求响应加解密设计
需求
基于用户请求,实现请求和响应的加解密。保证请求的安全性
核心流程设计
- 支持接口白名单,存在接口白名单中的接口无需加解密
- 支持指定接口响应不加密
加解密核心逻辑实现
未登入用户接口加解密
- 每次请求附带时间戳,放在请求头
- 对请求的时间窗口进行验证,如果当前时间与请求时间戳时差超过配置事件,不允许请求
- 将指定请求头拼接成
string- lang
- app-version
- platform
- token
- device_id
- 对前端传过来的请求头进行hmacSha256验证
public static String hmacSha256(String seed, String salt, String body, long time) {
final String key = assembleKey(seed, salt);
final byte[] bytes = new HmacUtils(HmacAlgorithms.HMAC_SHA_256, key).hmac(body + time);
return Base64.getEncoder().encodeToString(bytes);
}
登入用户接口加解密
本文为博主原创文章,未经博主允许不得转载