SpringBoot接口加密解密工具

news2024/10/7 14:22:41

介绍(项目源码见文末!!!!!!)

在软件项目开发过程中,当需要对后端返回数据进行加密,或者前段向后端发送的数据时加密后的数据,那么在接收前就需要进行解密。本工具就是基于注解实现接口加密解密,使用非常方便。

在工具中,提供了多种加密和解密方式,其中有加密和解密功能的方式有Base64、DES、3DES、AES和RSA,并且也提供了 MD5 加密。

使用时,只需要在需要加解密的接口上添加相应的注解就可以实现该功能。

使用说明

本加密解密组件必须在SpringBoot项目中才能使用

1、使用 git 拉取代码到本地,使用 meavn 的 install 将项目打包,生成 .jar 文件

2、在自己的项目中引入加解密依赖,如图所示

需要在自己的配置文件中说明自己使用的加密解密方式的秘钥,RSA 为非对撑加密,需要提供两个秘钥。变量名如下:

# 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() 注解,并说明希望的加密方式即可,如图:

    @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() 注解即可

    @ZxfDecryptRequest(type = AlgorithmType.DES)
    @PostMapping("/saveClassRoom")
    public ClassRoom saveClassRoom(@RequestBody ClassRoom classRoom){
        return classRoom;
    }

示例

使用方式如下图:

2023061501

2023061502

2023061502

项目源码:https://gitee.com/zou-xiangfa/encrypt-decrypt-tool

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DuiLib了解xml的使用和布局

文章目录 1、了解 XML 使用和布局2、VerticalLayout和HorizontalLayout3、TabLayout4、TileLayout5、Container6、ChildLayout 1、了解 XML 使用和布局 本节主要介绍 DuiLib 中 XML 关键字的使用和一些特性,通过构建一个简单的带标题栏和简单结构的窗口&#xff0c…

GCC编译四步和LDS脚本

GCC编译四步 1、预处理:宏定义替换之类的工作 2、编译非汇编:将源代码经过词法分析、语法分析、语义分析转为汇编代码的过程 3、汇编:将汇编代码转为具体二进制机器码的过程(此时由于还没有进行链接,所以虽然是二进…

Context Prior for Scene Segmentation--CVPR, 2020

Context Prior for Scene Segmentation–CVPR, 2020 文章目录 Context Prior for Scene Segmentation--CVPR, 2020一、背景介绍二、方法介绍1.A的生成2.Affinity Loss3.如何从 X X X获取P4.Y操作 一、背景介绍 问题:现阶段,不少语义分割方法所限于卷积结…

快速部署合同管理模板:低代码实现高效率

在现代商业环境中,合同管理是企业日常运营中至关重要的一环。合同是企业与外部实体之间约定的法律文件,合够帮助企业有效管理合同的全生命周期,包括合同创建、审批、签署、执行和归档,以提高合同管理的效率和准确性。 随着企业数…

软件测试面试题(大全)

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台,客户端零维护,维护成本低,但是个性化能力低,响应速度较慢 C/S响应速度快,安全性强,一般应用于局域网中,因…

【操作系统】操作系统最全的总结,5万字干货

文章目录 前言搞清楚几个问题 一、认识操作系统二、计算机硬件三、进程和线程1、进程2、进程模型3、进程的创建4、进程的终止5、进程的层次结构6、UNIX 进程体系7、Windows 进程体系8、进程状态9、进程的实现10、线程11、线程的使用12、经典的线程模型13、线程系统调用14、POSI…

Revit轴网问题:创建标高看不到原来的轴网和轴网转化

一、Revit中创建的标高看不见原先的轴网怎么解决 (1)在Revit中绘制的轴网会默认超过最高标高一定距离,若新绘制的标高会在这距离之上,进入新绘制的“标高3”平面会发现看不到(1至6号轴网)。 (2)进入东立面,拖动轴网往上移动即可。 进入南、北…

MySQL 读写分离代理(Mycat2)

作者:田逸 作者亲自尝试过的开源MySQL读写分离工具有Amoeba、MySQL Proxy、Mycat等,经过仔细测试对比,在某个实际项目中选用Mycat作为MySQL数据库读写分离的代理工具。Mycat当前的最新版本为Mycat2,可从http://dl.mycat.org.cn/2…

60、基于51单片机无线蓝牙温度上下限控制加热系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+任务书+元器件清单等)

摘 要 随着人们生活水平的提高,对生活环境的要求也越来越高,家用电器越来越趋向于自动控制控制乃至于智能控制,针对目前家庭的实际需要,自动控制水温报警系统比较方便实用,本文就通过51系列单片机来实现一种家用自动控…

VS2013 如何创建动态库和使用

创建动态库具体的步骤是:(以DLL为例) 1、创建一个win32项目 2、选择应用程序类型:DLL; 附加选项:导出符号,勾上; 3、点击完成,就会生成动态库 4、 由于是导出库&#xf…

[细读经典]Megatron论文和代码详细分析(1)

[细读经典]Megatron论文和代码详细分析(1) 导航: 迷途小书僮:[细读经典]Megatron论文和代码详细分析(2)102 赞同 41 评论文章正在上传…重新上传取消 前言 作为一款支持multi-node,multi-GPU的可以直接用来训练GPT3等世界上超大规模的自然…

【C++学习】VScode配置C/C++开发环境

VSCode是一个高级编辑器,只能用来写C/C/Python/Java等代码,不能直接编译这些代码。所以,我们需要搭建编译和调试环境,本文以C/C为例,使用MinGW-w64,将其移植到Windows平台的一个gcc编译器。下面具体介绍如何…

基于Java蜀都天香酒楼网站系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

第二章_基于redis实现分布式锁

基本实现 借助于redis中的命令setnx(key, value),key不存在就新增,存在就什么都不做。同时有多个客户端发送setnx命令,只有一个客户端可以成功,返回1(true);其他的客户端返回0(false…

微信小程序WE分析----事件分析

目录 web分析-小程序 事件分析概述 1.新增事件管理 事件参数说明 (1) 填写事件配置 (2)小程序添加上报代码:将上报代码添加到小程序中 (3)测试事件数据上报:测试事件上报的数据是否正确。 属性管理 字典管理 新增事件分析 创建事件分析 添加事件指…

Java+Swing+mysql员工工资管理系统2.0

JavaSwingmysql员工工资管理系统2.0 一、系统介绍二、功能展示1.用户登陆2.主页3.员工工资查询4.员工工资添加5.员工工资修改6.员工工资删除 三、系统实现1.salary.java 四、其它系统五、获取源码 一、系统介绍 该系统实现了简单的增删查改、用户登陆、员工工资查询、员工工资…

美联储缩表意味着什么?

What does the Feds balance sheet reduction mean? 这里的表是资产负债表,Balance sheet. 美联储(Federal Reserve)作为全球影响力最大的央行,其在货币政策上做出的一些调整,可能就会引起全球经济和金融市场动荡&am…

项目测试排期的正确方法是什么?

测试排期是项目排期里面的一部分,所以了解项目排期对整体产品的全貌会有一个宏观的认知,甘特图能很好的体现项目排期,里面包含了参与角色和每个角色对应的排期。项目参与者和项目责任人都可以清晰的看到项目当前进展和项目耗时等。 甘特图可…

智能监控系统:在线培训考试系统的保障

随着互联网技术的不断发展,越来越多的培训机构和教育机构采用在线学习和考试的方式进行教学。然而,考试中的作弊问题也随之产生,给教育质量和学术诚信带来了挑战。为了解决这一问题,许多在线培训考试系统引入了智能监控系统。 智…

邓铎:探索书法艺术的新境界

中国书画院院士邓铎,是一位在书法艺术领域拥有深刻理解和丰富实践经验的老者。他的作品随心所欲,个性鲜明,具备独特的审美品味和艺术手法,更有重要的理论创新,让书法艺术大放光彩。 邓铎的书法作品在形式上追求“形似象…