# encrypt-decrypt-tool **Repository Path**: zou-xiangfa/encrypt-decrypt-tool ## Basic Information - **Project Name**: encrypt-decrypt-tool - **Description**: 访问接口加密解密工具 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-15 - **Last Updated**: 2023-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 介绍(项目源码见文末!!!!!!) 在软件项目开发过程中,当需要对后端返回数据进行加密,或者前段向后端发送的数据时加密后的数据,那么在接收前就需要进行解密。本工具就是基于注解实现接口加密解密,使用非常方便。 在工具中,提供了多种加密和解密方式,其中有加密和解密功能的方式有Base64、DES、3DES、AES和RSA,并且也提供了 MD5 加密。 使用时,只需要在需要加解密的接口上添加相应的注解就可以实现该功能。 ### 使用说明 本加密解密组件必须在SpringBoot项目中才能使用 1、使用 git 拉取代码到本地,使用 meavn 的 install 将项目打包,生成 .jar 文件 2、在自己的项目中引入加解密依赖,如图所示 ![](https://niu.hqxiaozou.top/img/image-20230615143321871.png) 需要在自己的配置文件中说明自己使用的加密解密方式的秘钥,RSA 为非对撑加密,需要提供两个秘钥。变量名如下: ```properties # DES加密方式的秘钥 com.zxf.crypt.DES.KEY=XXXXXXXXXXXXXXXXX # 3DES加密方式的秘钥 com.zxf.crypt.DES_3.KEY=XXXXXXXXXXXXXXXX # AES加密方式的秘钥 com.zxf.crypt.AES.KEY=XXXXXXXXXXXXXXXXXX # RSA加密方式的公钥,加密时会使用 com.zxf.crypt.RSA.PUBLIC_KEY=XXXXXXXXXXXXXXXXX # RSA加密方式的私钥,解密时会使用 com.zxf.crypt.RSA.PRIVATE_KEY=XXXXXXXXXXXXXXXX #这里提供一组可以使用的秘钥 com.zxf.crypt.DES.KEY=B/LpcPR1p0Y= com.zxf.crypt.DES_3.KEY=YXqA4D5FfIMTUVcmaPFUtTRFkUzgbuzT com.zxf.crypt.AES.KEY=4nawisjwn946ye5td5zUlg== com.zxf.crypt.RSA.PUBLIC_KEY=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKkPVQ7P+1KLFfLUQRqfTuA9pHl/KNHQ/SPPF7kAvR900O3YA8W83LD5bzxT5MnvDB65tMdTbK9QwI5dcQ1LGh96LzROpD6kHo3yYiAQTKQE+ALI1xcHitrgKe68T+Emlxh/M9pUbN8i4PbLJqF3t/BBapwUgT/0W8mfcJOjoZLwIDAQAB com.zxf.crypt.RSA.PRIVATE_KEY=MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIqQ9VDs/7UosV8tRBGp9O4D2keX8o0dD9I88XuQC9H3TQ7dgDxbzcsPlvPFPkye8MHrm0x1Nsr1DAjl1xDUsaH3ovNE6kPqQejfJiIBBMpAT4AsjXFweK2uAp7rxP4SaXGH8z2lRs3yLg9ssmoXe38EFqnBSBP/RbyZ9wk6OhkvAgMBAAECgYBuC9HIA3DRHxA+1mRI4wFyRf0E/tfS2lHGVkAyMaQxjIXWWHOPfBlkO21XDD79+vyaBdPAVRa++P4l0uOKqmCnZTPIOfvNUDdlMQddpWmq7JFptDaS0c1ab7ybUcdvQm7FkLSZIYEzkMBTg3VbUJDQV0tIyI11zVZn9ZHWCpcvgQJBAMwbvpBNyNZjnPp65NmLIRoYpjiSOoVtOXWyL9xBto6lCNV5IC6aNT7aB1jIB1ZJahKuqU5RsDkAcdz7lC3ULlsCQQCty3LO4EgF6nfDtkNO8ehP3N7N+DCApWcrsCc38wX9mWa7eiU5eeQVDN5tvlJbTXa5FL2JwPZ9ktxYwNmPwaC9AkEAgXzEe7XtSR2vFDVtBBpA6NZkdZVHbShrAKEHvfsufvZyUUPjx8zrJLGbYZadGP/APJP0Mwyd+LuwgNpWGnD26wJATeE1eW8X107SjGlIkD/nEqKvVS06zutP6EvvxyqoLJRpbOm3dKIiiyxRIGyBC1kTMq0QooJN8se05jDFTZ4/IQJAV5rUKiOa9HZwnxSDZIb3SGIf7e/qXLrsbR2Z1hGhftKJ0+bKicDBYjRDzqgTCS2HCOupQ+3+Yayg5Bazm/VKCQ== ``` 3、对请求相应结果**加密**,使用 **@ZxfEncryptResponse()** 注解,并说明希望的加密方式即可,如图: ```java @ZxfEncryptResponse(type = AlgorithmType.DES) @GetMapping("/testZxfEn") public ClassRoom testZxfEn(){ ClassRoom room = new ClassRoom(); room.setRoomId(63); room.setRoom("六年级一班"); room.setAddr("六楼605"); room.setLikes(Arrays.asList("男孩","女孩")); ClassRoom room1 = new ClassRoom(); room1.setRoomId(63); room1.setRoom("六年级一班"); room1.setAddr("六楼605"); room1.setLikes(Arrays.asList("男孩","女孩")); room.setClassRooms(Arrays.asList(room1)); return room; } ``` 4、对请求参数进行**解密**,使用 **@ZxfDecryptRequest()** 注解即可 ```java @ZxfDecryptRequest(type = AlgorithmType.DES) @PostMapping("/saveClassRoom") public ClassRoom saveClassRoom(@RequestBody ClassRoom classRoom){ return classRoom; } ``` ### 示例 使用方式如下图: ![2023061501](https://niu.hqxiaozou.top/img/2023061501.png) ![2023061502](https://niu.hqxiaozou.top/img/2023061502.png) ![2023061502](https://niu.hqxiaozou.top/img/2023061503.png) **项目源码:https://gitee.com/zou-xiangfa/encrypt-decrypt-tool**