Category: Java
-
环境:SpringBoot 3.x + MyBatis-Plus 3.5.5 + MySQL8 + Java17 重点:安全写法(MP Lambda 构造器) vs 危险写法(字符串拼接 SQL,可注入),方便你直接拿 payload 测试对比 前置:MySQL 新建库 mp_demo,表 user
-
MyBatis-Plus 防 SQL 注入示例代码
Public核心结论:MP 自带的 QueryWrapper / LambdaQueryWrapper 条件构造器默认就是安全的,底层使用预编译参数绑定,不会 SQL 注入。 风险点只有一个:自己拼接字符串到 SQL 里(getSqlSelect、apply、${} 原生 xml)。
-
SpringBoot 完整配置模板
Public环境:SpringBoot 2.7.x/ 3.x,Java17;使用 application.yml + JavaConfig; 包含:自定义业务线程池、HikariCP、Redis、Sentinel 熔断限流; 配套依赖 maven,代码可直接复制使用,注意根据业务调整参数。 一、Maven 依赖
-
Java RSA+AES 混合加密完整工具类
Public业务标准方案:AES 加密业务明文,RSA 加密 AES 的密钥 为什么这么做:RSA 加密长度受限,适合加密短数据(AES 密钥、口令);AES 对称加密速度快,适合任意长度业务报文。 流程: 发送方:随机生成 AES 密钥 → AES 加密业务数据 → RSA (公钥) 加密 AES 密钥 传输
-
适用:SpringBoot 2.x/ 3.x,HikariCP 默认连接池;示例以 OpenGauss 为主,MySQL/PostgreSQL 只需要修改驱动类与连接串参数。 安全要点:密码不从配置文件明文写死、强制 SSL 证书校验、连接池安全参数、关闭敏感日志 1. pom.xml 依赖 <!-
-
Java RSA 加密 + 数字签名完整示例代码
Public要点说明: 密钥:RSA 2048,公钥加密,私钥解密;私钥签名,公钥验签 加密填充:RSA/ECB/OAEPWithSHA-256AndMGF1Padding(推荐,安全,替代不安全的 PKCS1v1.5) 签名算法:SHA256withRSA(先对原文做 SHA256 哈希,再 RSA 私钥签名
-
Java 防止 SQL 注入代码示例
Public核心原则:永远不要直接拼接字符串构造 SQL,优先使用 PreparedStatement(预编译语句),参数使用占位符 ?;MyBatis 使用 #{},禁止 ${}。 一、原生 JDBC PreparedStatement(推荐,防注入) import java.sql.Connection;
-
Java BCrypt 密码哈希示例代码
PublicBCrypt 自动内置随机盐,每次加密相同密码得到不同哈希字符串;验证时不需要单独存盐,直接传入原始密码 + 哈希串比对。 注意:JDK 没有内置 BCrypt,常用 org.mindrot:jbcrypt 包。 Maven 依赖 <dependency> <groupId>org.mind
-
Java MD5 示例代码
Public说明:JDK 自带 java.security.MessageDigest,MD5 仅用于摘要校验,不要用来存储密码。 输出结果为小写 32 位 MD5 字符串。 import java.security.MessageDigest; import java.security.NoSuchAlgor
-
Java 实现常见排序算法
Public下面提供冒泡、选择、插入、希尔、快速、归并、堆排序完整可运行代码,包含测试主方法,统一使用 int 数组演示,附带简要原理说明。 说明:所有实现为基础版本,方便理解原理;生产环境优先使用 Arrays.sort()。 import java.util.Arrays; public class So