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

无锡阳山镇网站建设godaddy域名买的网站

无锡阳山镇网站建设,godaddy域名买的网站,最好的设计公司,陕西中药材初加工平台一、背景 项目采用RuoYi前后端分离框架搭建,版本为3.8.9。为确保数据传输安全性,提高爬虫获取数据的门槛,领导要求系统指定的字段在API通信过程中要实现加密传输,但未对算法类型做具体要求,本人基于目前的新创的大环境考虑,采用了SM4对称加密算法对系统指定字段进行加密…

一、背景

项目采用RuoYi前后端分离框架搭建,版本为3.8.9。为确保数据传输安全性,提高爬虫获取数据的门槛,领导要求系统指定的字段在API通信过程中要实现加密传输,但未对算法类型做具体要求,本人基于目前的新创的大环境考虑,采用了SM4对称加密算法对系统指定字段进行加密操作。

二、设计思路

在基于RuoYi前后端框架进行实现时,本人主要考虑了:

  • 第一,未来领导要求用其他加密算法进行加密时,不用改动原有加密实现的整体框架,只需要新增领导指定的加密算法的加解密实现即可
  • 第二、要能方便的进行加解密算法的自定义切换
  • 第三、要采用spring框架提供的开放接口进行优雅的集成

话不多说,直接开整。

三、加解密标记注解

主要有API接口请求/响应标记注解和加解密目标字段标记注解,前者提供对请求/响应加解密的标记,后者实现对加解密目标字段的标记。

  • 1.目标字段标记注解:EncryptedField

    package com.book.common.annotation.encrypt;import java.lang.annotation.*;/*** @className: EncryptedField* @author: liuyh* @date: 2025/5/20 15:56* @Version: 1.0*/
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface EncryptedField {
    //    String value() default "SM4"; // 默认使用 SM4 加密
    }

  • 2.API请求解密标记注解:EncryptedRequest

    package com.book.common.annotation.encrypt;import java.lang.annotation.*;/*** @className: EncryptedRequest* @author: liuyh* @date: 2025/5/20 10:09* @Version: 1.0*/
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface EncryptedRequest {String value() default "SM4"; // 默认使用 SM4 加密
    }
    

  • 3.API响应加密标记注解:EncryptedResponse

    package com.book.common.annotation.encrypt;import java.lang.annotation.*;/*** @className: EncryptedRequest* @author: liuyh* @date: 2025/5/20 10:09* @Version: 1.0*/
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface EncryptedResponse {String value() default "SM4"; // 默认使用 SM4 加密
    }
    

    四、加解密器实现

加解密器,采用了工厂模式,说是工厂模式,其实就是一个加解密实现类实例协调器(映射工厂)。

  • 1.添加SM轮子

                <dependency><groupId>com.antherd</groupId><artifactId>sm-crypto</artifactId><version>0.3.2.1</version></dependency>

  • 2.加解密器接口类

    package com.book.framework.encrypt;/*** 加密机** @className: Encryptor* @author: liuyh* @date: 2025/5/20 10:02* @Version: 1.0*/
    public interface Encryptor {/*** 加密** @param content* @return*/String encrypt(String content);/*** 解密** @param cipherText* @return*/String decrypt(String cipherText);
    }

  • 3.加解密器工厂类

package com.book.framework.encrypt;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.Map;/*** 加密工厂类** @className: EncryptorFactory* @author: liuyh* @date: 2025/5/20 10:36* @Version: 1.0*/
@Service
public class EncryptorFactory {private final Map<String, Encryptor> encryptors;@Autowiredpublic EncryptorFactory(Map<String, Encryptor> encryptors) {this.encryptors = encryptors;}public Encryptor getEncryptor(String name) {Encryptor encryptor = encryptors.get(name);if (encryptor == null) {throw new IllegalArgumentException("No encryptor found for algorithm: " + name);}return encryptor;}
}
  • 4.SM4算法实现

    package com.book.framework.encrypt;import com.antherd.smcrypto.sm4.Sm4;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotat
http://www.dtcms.com/wzjs/677752.html

相关文章:

  • 中建材建设有限公司网站大方泳嘉网站建设
  • 德州网站seo南昌seo实用技巧
  • 青岛在线制作网站咖啡色网站模板
  • 做封面模板下载网站上海软件开发工程师工资一般多少
  • 手机端网站建设公司企业网站源码cms
  • 做招聘网站用什么代码开发顾问式 网站
  • 新乡企业建网站安装百度一下
  • 学生个人主页制作西安网站seo厂家
  • 抚顺做网站盘锦网站建设公司
  • 番禺定制型网站建设做logo宣传语的网站
  • 淘宝网网站建设的需求分析建立什么样的网站好
  • 网站维护的方式包括最新网页游戏传奇
  • 网站开发 技术指标免费上线个人网站
  • 园区网站建设需求调研报告网站建设与管理代码样式
  • 企业内部网站制作模板上海稼禾建设装饰集团网站
  • 有域名了建立免费网站东莞建设工程交易网
  • 怎么建个废品网站wordpress 添加广告窗口
  • 外包网站开发合同文字logo设计生成器
  • 张家港网站优化wordpress 做下载站
  • 公司做网站要有服务器深圳排名网站
  • 四川建设局网站首页上传下载文件网站开发的php源码
  • 大数据与网站开发技术策划公司排名前十名
  • 长春专业做网站的公司排名网站建设与管理培训方案
  • 手机怎么建设网站深圳网上推广怎么做
  • 哪个网站可以做会计分录网页微信版本在哪里下载
  • 网站平台建设服务合同金属东莞网站建设技术支持
  • iis 子网站建设官方网站查询
  • 网站小游戏怎么做的建设工程施工合同范本哪个网站
  • 网站首页页脚设计php创建网页
  • 网站开通会员怎么开发pageadmin做的网站的域名必须要备案吗