springboot项目实现实体类加密存库,解密返回给前端

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: springboot项目实现实体类加密存库,解密返回给前端

常用的加密方式

常见的加密方式包括对称加密和非对称加密。

  • 对称加密:对称加密也称为共享密钥加密,使用相同的密钥进行加密和解密。由于加密和解密都使用相同的密钥,因此对称加密算法的加密和解密速度都很快。常见的对称加密算法包括AES、DES、3DES、Blowfish等。
  • 非对称加密:非对称加密也称为公钥加密,使用一对密钥进行加密和解密,包括公钥和私钥。公钥可以公开发布给其他人使用,而私钥只有持有者可以使用。非对称加密算法的加密和解密速度较慢,但是它提供了更好的安全性和可信度。常见的非对称加密算法包括RSA、DSA、ECC等。

除了对称加密和非对称加密,还有一些其他的加密方式,如哈希加密、混淆加密等,这些加密方式都有其特定的应用场景和优缺点。同时,为了提高加密的安全性,还可以将不同的加密方式组合起来使用,例如对称加密和非对称加密的组合、加密和数字签名的组合等。

利用RSA将JSON加密存到数据库

场景,对于一些重要的配置信息,比如支付宝扫码配置信息等,我们可以将这种配置信息作为一个实体,转为JSON存到数据库,定义一个biz_type作为类型区别,直接开干

1️⃣:首先引入hutool工具类

<dependency>
  <groupId>cn.hutool</groupId>
  <artifactId>hutool-all</artifactId>
  <version>5.7.17</version>
</dependency>

2️⃣:创建配置工具类(加密,解密)

package com.test.rsa.util;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
/**
 * @author xiaobo
 * @date 2023/3/22
 */
public class ConfigureRsaUtils {
    public static final String RSA_PRIVATE_KEY = "";
    public static final String RSA_PUBLIC_KEY = "";
    /**
     * description: 解密配置中的字符串
     *
     * @param configParam 配置文件中的加密字符串
     * @param beanClass   Bean对象
     * @return T
     * @author bo
     * @date 2023/3/22 3:05 PM
     */
    public static <T> T decryptConfigStr(String configParam, Class<T> beanClass) {
        RSA rsa = new RSA(RSA_PRIVATE_KEY, RSA_PUBLIC_KEY);
        String decryptStr = rsa.decryptStr(configParam, KeyType.PrivateKey);
        return JSONUtil.toBean(decryptStr, beanClass);
    }
    /**
     * description: 加密bean对象生成字符串
     *
     * @param object Bean对象
     * @return java.lang.String
     * @author bo
     * @date 2023/3/22 3:11 PM
     */
    public static String encryptConfigStr(Object object) {
        RSA rsa = new RSA(RSA_PRIVATE_KEY, RSA_PUBLIC_KEY);
        return rsa.encryptBase64(JSON.toJSONString(object), KeyType.PublicKey);
    }
}

ℹ️:这里的私密和公密可以直接利用hutool工具类生成

3️⃣:通过泛型获取实体VO对象

/**
* 获取配置实体的Vo对象
*/
public <T> T getConfigContentVo(Class<T> beanClass, String bizType) {
  SysConfig sysConfig = dao.selectOne(new QueryWrapper<SysConfig>().eq("biz_type", bizType));
  return ObjectUtil.isEmpty(sysConfig) ? null : ConfigureRsaUtils.decryptConfigStr(sysConfig.getConfigContent(), beanClass);
}
相关文章
|
3月前
|
存储 监控 前端开发
如何实现前端框架数据驱动方式的数据加密存储?
实现前端框架数据驱动方式的数据加密存储需要综合考虑多个因素,包括加密算法的选择、密钥管理、传输安全、服务器端处理等。通过合理的设计和实施,能够有效提高数据的安全性,保护用户的隐私和敏感信息。但需要注意的是,前端加密存储不能完全替代后端的安全措施,后端的安全防护仍然是不可或缺的。
111 53
|
26天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
124 64
SpringBoot项目打war包流程
|
30天前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
129 36
|
21天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
35 5
|
3月前
|
存储 前端开发 安全
如何确保前端框架数据驱动方式的数据加密存储的兼容性?
确保前端框架数据驱动方式的数据加密存储的兼容性需要综合考虑多个因素,通过充分的评估、测试、关注和更新,以及与其他技术的协调配合,来提高兼容性的可靠性,为用户提供稳定和安全的使用体验。
100 52
|
3月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
3月前
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
268 2
|
3月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
79 2
|
3月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
53 0
|
24天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
59 10

热门文章

最新文章

  • 1
    Pandas高级数据处理:数据加密与解密
  • 2
    使用SM4算法加密LUKS格式磁盘
  • 3
    免费SSL证书:一键加密,守护网站安全
  • 4
    java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
  • 5
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 6
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 9
    详解智能编码在前端研发的创新应用
  • 10
    巧用通义灵码,提升前端研发效率