# Java代码加密 **Repository Path**: zhaodecang/javaEncrypt ## Basic Information - **Project Name**: Java代码加密 - **Description**: Java代码加密,非授权代码无法使用 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java 配置文件加密工具 本项目提供了一个 Java 配置文件加密工具,用于加密和解密 Yaml 配置文件,保护敏感信息,适用于 Spring Boot 应用程序。 ## 特性 - 使用标准 PBE(Password-Based Encryption)算法加密/解密配置文件。 - 支持加密和压缩配置文件内容,提高安全性与性能。 - 提供内存中的配置加载器,避免直接暴露敏感文件。 - 支持多配置文件加密/解密,适用于复杂项目结构。 ## 模块结构 - `ConfigEncryptor`: 提供单个配置内容的加密和解密功能。 - `EncryptedConfigInitializer`: Spring Boot 的 `ApplicationContextInitializer` 实现,用于在应用启动时加载加密的配置。 - `InMemoryPropertySourceLoader`: 加载并存储内存中的属性配置,避免直接读写文件。 - `InMemoryYamlLoader`: 支持将加密的 Yaml 文件加载到内存中,按需解密。 - `MultiYamlEncryptor`: 支持多个 Yaml 文件批量加密/解密。 - `YamlEncryptorTool`: 提供工具方法,用于快速加密或解密文件。 ## 使用方法 ### 加密配置文件 调用 `YamlEncryptorTool.jiami()` 方法即可对配置文件进行加密。 ### 解密配置文件 调用 `YamlEncryptorTool.jiemi()` 方法即可对加密的配置文件进行解密。 ### 集成到 Spring Boot 应用 1. 将 `EncryptedConfigInitializer` 注册为 Spring Boot 的初始化器。 2. 使用 `InMemoryYamlLoader` 加载加密的 Yaml 文件到内存。 3. 应用启动时自动解密并加载配置。 ## 安装与依赖 本项目基于 Maven 构建,依赖项如下: - Spring Boot Framework - Jasypt 加密库(用于实现 PBE 加密) - SnakeYAML(用于处理 Yaml 文件) 确保在 `pom.xml` 中正确引入这些依赖。 ## 注意事项 - 密码应妥善保管,不应硬编码在生产环境中。 - 加密文件应存储在安全的环境中,避免未经授权的访问。 - 项目中使用了静态密码字段 `_PASSWORD_`,建议在实际使用中通过配置或环境变量注入。 ## 许可证 本项目遵循 Apache 2.0 协议,详细信息请参考 [LICENSE](LICENSE) 文件。