Skip to content

加密插件

xinwu-yang edited this page Feb 28, 2023 · 1 revision

crypto-starter

  • 提供常用加解密/国密算法
  • 支持注解字段自动加密
  • 支持的对称加密: AES/SM4
  • 支持的非对称加密: RSA/SM2
  • 摘要算法: MD5/SHA256/SM3(不可解密)

Quick Start:

1. 引入依赖

在Maven的pom.xml配置公司的私服,并引入sensitive-spring-boot-starter依赖

<repositories>
    <!-- 公司私服-->
    <repository>
        <id>tievd</id>
        <url>http://125.71.201.6:8081/content/groups/public</url>
    </repository>
</repositories>

<dependency>
<groupId>com.tievd.cube.starter</groupId>
<artifactId>crypto-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
2. 如何使用

2.1 设置密钥

  • spring-boot 集成
cube:
  crypto:
    aes-key: '3c261ba23741fc4536295bb46c01eda5'
    sm4-key: ''
    rsa-public-key: ''
    rsa-private-key: ''
    sm2-public-key: ''
    sm2-private-key: ''
  • 单独使用

resources目录下创建crypto.properties

cube.crypto.aes.key=
cube.crypto.sm4.key=
cube.crypto.rsa.publicKey=
cube.crypto.rsa.privateKey=
cube.crypto.sm2.publicKey=
cube.crypto.sm2.privateKey=

2.2 只加密, 不解密

  • 核心注解参数说明
// value Algorithm 算法名称
@Crypto
  • 定义实体类,并使用 @Crypto 注解
@Data
public class SysUser implements Serializable {
    private static final long serialVersionUID = 1L;
    private String id;
    private String username;
    @Crypto(Algorithm.AES)
    private String password;
    // 默认
    @Sensitive
    private String email;
    // 自定义长度脱敏
    @Sensitive(start = 4, length = 4)
    private String phone;
}

2.3 加密入库/解密出库

  • 定义实体类,并将字段类型设置为 CryptoField
  • CryptoField.algorithm insert时需要设置加密算法
  • CryptoField.plaintext 明文
  • CryptoField.ciphertext 密文
@Data
public class SysUser implements Serializable {
    private static final long serialVersionUID = 1L;
    private String id;
    private String username;
    private CryptoField password;
    // 默认
    @Sensitive
    private String email;
    // 自定义长度脱敏
    @Sensitive(start = 4, length = 4)
    private String phone;
}

更新日志

CHANGELOG

开发环境

开发环境安装

Git开发和迭代规范

Git开发和迭代规范

快速开始

3.0.x

2.6.x

代码生成器

如何使用代码生成器

自定义代码生成器模板

开发技巧

登录和凭证配置介绍

如何在代码中获取当前登录对象

字典翻译

菜单路由配置

数据日志如何使用

查询过滤器用法

系统操作日志怎么插入

平台消息推送接口

限制API重复提交

部门父子编码使用方法

系统文件上传

系统编码规则如何使用

系统校验规则如何使用

第三方平台如何调用魔方API

如何切换回Druid数据源

自定义接口拦截器

自定义接口参数Formatter

使用SpringDoc编写API文档

系统权限用法

接口请求权限

页面按钮权限

表格列字段权限

二级部门权限管理

数据权限

表单权限

业务模块

Quartz任务调度

消息中心

第三方登录

阿里云OSS(MinIO)上传管理模块

魔方Plugins

工作流引擎

SQL导出

字符串脱敏

Excel的快速导入导出

文件的上传和下载

加密插件

接入magic-api

新版代码生成器

通用地图服务

高级用法

部门结构变化权限如何控制

如何优雅的拓展用户部门字段

多租户

SSO单点登录

Prometheus

数据库专栏

MySQL5.7+

MySQL分区表

达梦数据库(DM8)

魔方集成达梦数据库

从MySQL迁移到达梦数据库

达梦8与MySQL的主要区别

MyCat分库分表

原则

垂直分片Demo

水平分片Demo

微服务

如何切换微服务

微服务组件

预研Demo示例

预研Demo示例

Clone this wiki locally