当前位置: 首页 > news >正文

苏州专业建站聚合搜索引擎

苏州专业建站,聚合搜索引擎,郑州网站建设网站开发,做网站到a5卖站赚钱背景 在实际开发过程中,我们通常会涉及到数据加密的问题。本文重点探讨两个方面:一是外部接口调用时的数据加密,二是服务间调用的数据加密与解密。 对于外部接口调用,每个用户将拥有独立的动态 AES 加密密钥(KEY&…

背景

在实际开发过程中,我们通常会涉及到数据加密的问题。本文重点探讨两个方面:一是外部接口调用时的数据加密,二是服务间调用的数据加密与解密。

对于外部接口调用,每个用户将拥有独立的动态 AES 加密密钥(KEY)和初始向量(IV)。在用户每次重新登录后,系统会重新生成 KEY 和 IV,以保证调用端的唯一性。这种机制不仅提高了数据传输的安全性,还能有效限制非法调用。

对于服务间的调用,我们则采用系统级的 KEY 和 IV 对 API 调用的数据进行加密和解密。这种方式适用于系统内部的安全保障,确保服务间通信的可靠性和安全性。

通过上述两种方式,我们能够满足不同场景下的加密需求,同时有效提升系统的安全性和调用端的独特性。

注解类

通常用在controller上,上面用到了枚举用来标识接口的加密方式,默认为系统加密码,因为一开始是准备用于服务间调用的。

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Indexed
public @interface ApiEncrypt {//加密方式ApiEncryptType encryptType() default ApiEncryptType.BY_SYSTEM;}

AOP类

在 AOP 的 doAfter 方法中对结果进行拦截和输出是常见的操作。如果您对其实现原理感兴趣,可以查阅相关资料以深入了解。

其中,核心的加解密功能主要由 ApiEncryptUtil 类实现。以下是相关的代码片段:

@Aspect
@Slf4j
public class ApiEncryptAspect {@Pointcut("@annotation(com.unknow.first.api.encrypt.annotation.ApiEncrypt)")public void apiEncryptPointcut() {}@AfterReturning(value = "apiEncryptPointcut()", returning = "result")public void after(JoinPoint joinPoint, CommonApiResult<Object> result) throws Throwable {Signature signature = joinPoint.getSignature();MethodSignature msg = (MethodSignature) signature;//获取注解标注的方法Method method = joinPoint.getTarget().getClass().getMethod(msg.getName(), msg.getParameterTypes());//通过方法获取注解final ApiEncrypt apiEncrypt = method.getAnnotation(ApiEncrypt.class);ApiEncryptUtil.encryptData(result, apiEncrypt.encryptType());}
}

示例代码

    @GetMapping("/api/encrypt/user")@ApiOperation("api加密-用户密钥加密")@ApiEncrypt(encryptType = BY_USER)@SystemResource(authMethod = AuthMethod.ALLSYSTEMUSER)public CommonApiResult<Object> testEncryptByUserKey() {Map<String, Object> value = new HashMap<>();value.put("test1", "测试1");value.put("test2", "测试2");return CommonApiResult.createSuccessResult(value);}

总结

这种加密方式在一定程度上模拟了云平台中 AK/SK 机制的加密模式,但与其不同的是,我们的 AK/SK 是动态生成的。这主要是基于外部对接用户的特点,考虑到会话通常持续时间较长,因此动态生成的 AK/SK 不会快速过期,同时也能够有效确保会话终端的唯一性。

未来,我们计划进一步扩展功能,允许为外部调用用户配置固定的 AK/SK,以满足特定场景下的需求。以下是相关代码参考:

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=O83Ahttps://gitcode.com/YouYouLongLong/springcloud-framework/tree/master/core-common-parent/api-encrypt-common

http://www.hkea.cn/news/85171/

相关文章:

  • 北京做网站的外包公司营销策划方案案例范文
  • 专业做酒店网站关键词优化排名软件流量词
  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放
  • 沈阳做微网站百度收录刷排名
  • 网站建设与管理技术发展seo是什么意思如何实现
  • 手机游戏开发制作公司最新seo视频教程
  • 网站优化过度被k长春seo排名公司
  • wordpress移除谷歌字体seo网站推广与优化方案
  • 十大景观设计公司排名seo权重查询
  • 水友做的yyf网站十大免费引流平台
  • 东莞公司网站制作百度识图网页版 在线