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

如何在网站上添加qqseo指导

如何在网站上添加qq,seo指导,中化山东公路建设集团网站,石家庄网站定制背景 在实际开发过程中,我们通常会涉及到数据加密的问题。本文重点探讨两个方面:一是外部接口调用时的数据加密,二是服务间调用的数据加密与解密。 对于外部接口调用,每个用户将拥有独立的动态 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.shuangfujiaoyu.com/news/55584.html

相关文章:

  • 怎样淘宝做seo网站推广营销手段有哪些
  • 网站建设 站内搜索百度软件
  • 前端做项目网站码迷seo
  • 住房和城乡建设部网站监理工程师南京seo
  • 交互网站建设东莞网络营销公司
  • 重庆汽车网站建设网址查询地址查询
  • 免费的html大作业网站找客户资源的软件
  • 商标注册申请需要什么材料seo关键词是什么
  • 河北响应式网站企业sem是什么测试
  • 专业做室内设计的网站淘宝网络营销方式
  • 新吴区推荐做网站电话推广神器
  • 找哪些公司做网站设计素材网站
  • 电脑网站网页设计网站网络推广运营
  • 仿网站建设站长资源平台
  • 怎么组建企业网站百度点击软件
  • 校园社交网站开发科学新概念seo外链平台
  • 2345天气王青岛网络优化费用
  • 公众号交易平台seo搜索引擎优化岗位要求
  • wordpress url斜杠整站关键词排名优化
  • 网站优化策划书新乡网站优化公司
  • 学校网站建设招标公告推广公司主要做什么
  • wordpress主题 芯片杭州网络推广网络优化
  • 抓取网站访客数据原理营销策略手段有哪些
  • 网站做seo多少钱个人推广app的妙招
  • 安阳网站公司哪家好成都网站seo收费标准
  • 最佳的搜索引擎网站优化推广排名
  • 玩具公司网站开发论文网络推广服务费
  • 网站建设 cn旅游seo整站优化
  • 做网站用什么ui美观市场seo是什么意思
  • wp怎么做双语网站网站的营销策略