Skip to content

GitHubNull/py4j_platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Py4J 加密服务平台

基于 Py4J 的 Java-Python 加密算法桥接服务框架,支持 AES、RSA、国密 SM2/SM3/SM4 等加解密算法,以及 Base64、Hex、URL 等常用编解码算法。

功能特性

  • 对称加密: AES (CBC/GCM)、国密 SM4 (CBC/ECB)
  • 非对称加密: RSA (加密/解密/签名/验签)、国密 SM2 (加密/解密/签名/验签)
  • 摘要算法: 国密 SM3 (摘要/HMAC)
  • 编解码: Base64、Hex、URL 编码/解码
  • 插件化扩展: 基于 Java SPI 机制,支持热插拔扩展更多算法
  • 跨语言调用: Python 端通过 Py4J 透明调用 Java 加密能力

技术栈

  • Java 17 + Maven
  • py4j 0.10.9.7
  • BouncyCastle 1.78.1 (国密算法支持)
  • Python 3.9+ + uv + pytest

快速开始

1. 启动 Java Gateway

mvn clean package
java -jar target/py4j_platform-1.0.0.jar

默认监听端口 25333

2. Python 调用示例

from py4j_crypto import CryptoGatewayClient, CryptoAPI

with CryptoGatewayClient() as client:
    crypto = CryptoAPI(client)

    # SM2 加解密
    pub, priv = crypto.sm2_generate_keypair()
    encrypted = crypto.sm2_encrypt("Hello, SM2!", pub)
    decrypted = crypto.sm2_decrypt(encrypted, priv)

    # Base64 编解码
    encoded = crypto.base64_encode("Hello, World!")
    decoded = crypto.base64_decode(encoded)

    # 查看所有可用算法
    print(crypto.list_algorithms())

3. 运行测试

cd python
uv sync
uv run pytest tests/ -v

项目结构

py4j_platform/
├── src/main/java/top/oxff/     # Java 服务端源码
│   ├── gateway/                # Py4J Gateway 入口
│   ├── api/                    # 服务接口
│   ├── core/                   # 核心框架 (引擎/模型/异常)
│   ├── algorithm/              # 算法实现
│   │   ├── symmetric/          # 对称加密 (AES/SM4)
│   │   ├── asymmetric/         # 非对称加密 (RSA/SM2)
│   │   ├── digest/             # 摘要 (SM3)
│   │   └── codec/              # 编解码 (Base64/Hex/URL)
│   └── plugin/                 # 插件系统
├── python/                     # Python 客户端
│   ├── src/py4j_crypto/        # Python API 封装
│   └── tests/                  # pytest 测试
└── doc/                        # 文档

扩展开发

实现 top.oxff.core.engine.CryptoEngine 接口,在 EngineFactory 中注册即可添加新算法:

EngineFactory.register("CUSTOM", CustomEngine::new);

或通过 Java SPI 机制,在 META-INF/services/top.oxff.algorithm.spi.AlgorithmProvider 中注册 AlgorithmProvider 实现。

文档

开源协议

本项目采用 Apache License 2.0 开源协议。

安全声明

本软件提供的加密算法实现仅供学习和合法用途使用。请遵守当地法律法规,密码学软件可能受出口管制法规约束。详见 SECURITY.mdLEGAL.md

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages