推荐使用 MyBatis Type Handlers for Encrypt 开源项目

推荐使用 MyBatis Type Handlers for Encrypt 开源项目

typehandlers-encryptMyBatis Type Handlers for Encrypt项目地址:https://gitcode.com/gh_mirrors/ty/typehandlers-encrypt

项目介绍

在当今数据安全日益受到重视的背景下,MyBatis Type Handlers for Encrypt(以下简称 typehandlers-encrypt)应运而生。该项目旨在为开发者提供一个简单、高效的解决方案,用于对数据库中的敏感信息进行自动加密和解密。通过集成 typehandlers-encrypt,开发者无需修改现有业务代码,仅需进行少量配置,即可实现对指定字段的加解密操作,极大地简化了开发流程,降低了安全风险。

项目技术分析

typehandlers-encrypt 基于 MyBatis 的 TypeHandler 机制开发。TypeHandler 是 MyBatis 中用于在 JavaType 和 JdbcType 之间进行转换的组件。该项目通过自定义的 EncryptTypeHandler,拦截 JavaType 为 com.github.trang.typehandlers.alias.Encrypt 的 SQL 语句,在预处理语句(PreparedStatement)中设置参数时自动加密,并在结果集(ResultSet)中取值时自动解密。这种设计使得加解密过程对开发者透明,极大地提升了开发效率和代码的可维护性。

项目及技术应用场景

typehandlers-encrypt 适用于任何使用 MyBatis 作为持久层框架的项目,特别是那些需要对数据库中的敏感信息(如密码、身份证号、银行卡号等)进行加密处理的场景。无论是传统的单体应用,还是现代的微服务架构,typehandlers-encrypt 都能提供一致且高效的加解密解决方案。

项目特点

  1. 简单易用:用户无需更改业务代码,仅需少量配置即可实现加解密功能。
  2. 透明处理:加解密过程对开发者透明,不影响现有业务逻辑。
  3. 灵活配置:支持自定义加密算法和密钥,满足不同安全需求。
  4. 开箱即用:内置 AES 加密算法和默认密钥,支持快速集成。
  5. 广泛兼容:兼容 MyBatis、Spring 和 SpringBoot 等多种框架和配置方式。

使用指南

依赖引入

首先,在项目的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.github.drtrang</groupId>
    <artifactId>typehandlers-encrypt</artifactId>
    <version>1.1.1</version>
</dependency>

声明 EncryptTypeHandler

根据项目实际情况,选择以下任一方式进行配置:

单独使用 MyBatis

mybatis-config.xml 文件中添加以下配置:

<typeAliases>
    <package name="com.github.trang.typehandlers.alias" />
</typeAliases>

<typeHandlers>
    <package name="com.github.trang.typehandlers.type" />
</typeHandlers>
与 Spring 结合

在 Spring 配置类中添加以下 Bean:

@Bean
public SqlSessionFactory sqlSessionFactory(Configuration config) {
    SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
    factory.setTypeAliasesPackage("com.github.trang.typehandlers.alias");
    factory.setTypeHandlersPackage("com.github.trang.typehandlers.type");
    return factory.getObject();
}
与 SpringBoot 结合

application.yml 文件中添加以下配置:

mybatis:
    type-aliases-package: com.github.trang.typehandlers.alias
    type-handlers-package: com.github.trang.typehandlers.type

使用 EncryptTypeHandler

在 MyBatis 的 SQL 映射文件中,对需要加密的字段声明 javaType="encrypt"

<!-- select: 在 resultMap 或 SQL 中需要加密的字段上声明 `javaType="encrypt"` -->
<resultMap id="BaseResultMap" type="user">
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="username" javaType="string" jdbcType="VARCHAR" property="username" />
    <result column="password" javaType="encrypt" jdbcType="VARCHAR" property="password" />
</resultMap>

<!-- insert: 在 SQL 中需要加密

typehandlers-encryptMyBatis Type Handlers for Encrypt项目地址:https://gitcode.com/gh_mirrors/ty/typehandlers-encrypt

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹娇振Marvin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值