跳到主要内容
👋 哈喽!我是 小奏 , 欢迎关注我的公众号【小奏技术】

基于用户的请求响应加解密设计

需求​

基于用户请求,实现请求和响应的加解密。保证请求的安全性

核心流程设计​

  1. 支持接口白名单,存在接口白名单中的接口无需加解密
  2. 支持指定接口响应不加密

加解密核心逻辑实现​

未登入用户接口加解密​

  1. 每次请求附带时间戳,放在请求头
  2. 对请求的时间窗口进行验证,如果当前时间与请求时间戳时差超过配置事件,不允许请求
  3. 将指定请求头拼接成string
    • lang
    • app-version
    • platform
    • token
    • device_id
  4. 对前端传过来的请求头进行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);
}

登入用户接口加解密​

本文为博主原创文章,未经博主允许不得转载