# controller-crypto **Repository Path**: kming98/controller-crypto ## Basic Information - **Project Name**: controller-crypto - **Description**: 对接口请求体解密,返回数据时加密 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-05-13 - **Last Updated**: 2023-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Java ## README # controller-crypto > ###### controller-crypto是一个对接口请求体解密,返回数据时加密的模块 ## 使用方式 **使用方式可看demo** ### 简单版 1. 配置文件添加默认算法配置,配置如下 > class-name:算法全限定类名,其他属性是算法类的构造器参数 > com.kming.crypto.algorithm.RSA该类实例化需要参数privateKey和publicKey > defaultEncrypt 加密算法配置;defaultDecrypt 解密算法配置 ``` controller: crypto: defaultEncrypt: class-name: 算法全限定类名 privateKey: 构造器参数privateKey的值 publicKey: 构造器参数publicKey的值 defaultDecrypt: class-name: 算法全限定类名 privateKey: 构造器参数privateKey的值 publicKey: 构造器参数publicKey的值 ``` ==RSA私钥、公钥可以使用Hutool工具生成,代码如下== ```java RSA rsa = new RSA(); System.out.println(rsa.getPrivateKeyBase64()); System.out.println(rsa.getPublicKeyBase64()); ``` 2. 启动类添加@EnableControllerCrypto注解 3. 在接口上添加@EncryptBody对请求体解密,添加@DecryptBody对返回数据加密 ### 多个算法,配置如下 > @EncryptBody、@DecryptBody指定使用的算法 ``` controller: crypto: algorithms: - class-name: 算法1全限定类名 args1: 构造器参数args1的值 - class-name: 算法2全限定类名 args1: 构造器参数args1的值 args2: 构造器参数args2的值 ``` **以上两种方式是对body整体加密解密,需个性加密解密个别属性的,可以自定义advice,并在@EnableControllerCrypto中指定,可以参照demo中的com.example.demo.advice.EncryptResponseBody**