国密算法Java开发利器:一库解锁SM2/SM3/SM4/SM9全场景
棉花糖糖糖
棉花糖糖糖
棉花糖网络安全工具箱
2026年10月16日 10:42
四川
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
安全声明:请严格遵循国家密码管理局相关规范,本工具仅供技术研究及合法合规场景使用。
重点导读简介
GmSSL-Java是GmSSL密码库的Java语言封装,通过JNI(Java Native Interface)调用底层C库实现全部密码功能。该项目为Java环境和Android系统提供国密算法支持,覆盖签名、加密、哈希、认证等核心场景。
重点导读核心架构
JNI桥接层实现Java与C库的互操作:
org.gmssl包:基础实现类,API简洁直观org.gmssl.crypto包:JCE标准框架实现,兼容Spring Security等生态
底层调用GmSSL C库,保证功能完整性与标准符合性。
重点导读算法支持
PART 01哈希与认证
SM3杂凑函数输出32字节固定长度摘要。HMAC-SM3基于SM3实现消息认证码,用于防篡改校验。SM3-PBKDF2支持口令到密钥的安全导出。
PART 02对称加密
SM4分组密码支持多工作模式:
- ECB模式:分组独立加密
- CBC模式:链式加密
- CTR模式:流式加密
- GCM模式:认证加密(带完整性保护)
ZUC序列密码支持可变长度数据加解密。
PART 03公钥密码
SM2椭圆曲线公钥密码实现加密与数字签名。SM9基于身份密码体系支持加密和签名,无需CA证书。
重点导读平台支持
多平台持续集成覆盖:
- Ubuntu Linux x86\_64
- macOS ARM64
- Windows x86\_64
- Android (Dalvik/ART)
重点导读项目结构
src/main/
├── c/ JNI胶水代码
├── java/org/gmssl/ 基础类库
└── resources/ 本地库配置
examples/ 示例代码
src/test/ 单元测试
重点导读快速使用
PART 04Maven依赖
xml<dependency>
<groupId>org.gmssl</groupId>
GmSSLJNI</artifactId>
<version>1.0.0</version>
</dependency>
PART 05Native库加载
GmSSL-Java 1.0.0内置NativeLoader机制,自动从Jar包加载对应平台动态库,支持Windows (.dll)、Linux (.so)、macOS (.dylib)。
PART 06JCE Provider注册
javaSecurity.addProvider(new GmSSLProvider());
KeyPairGenerator keyGen = KeyPairGenerator.getInstance(\"SM2\", \"GmSSL\");
Cipher cipher = Cipher.getInstance(\"SM4/GCM/NoPadding\", \"GmSSL\");
重点导读编译构建
依赖GmSSL C库:
bashgit clone https://github.com/guanzhi/GmSSL.git
cd GmSSL
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
sudo cmake --install build
编译Java项目:
bashmvn clean install
重点导读技术特点
- JNI调用C库实现,性能与GmSSL命令行工具持平
- 双API设计:基础接口与JCE标准接口并存
- NativeLoader自动加载动态库,防重复加载
- macOS引用库自动处理
- Android平台完整兼容
本公众号非项目作者,仅做技术分享。
本文介绍的项目开源地址如下:
texthttps://github.com/GmSSL/GmSSL-Java
广告时间
低价考证包括但不限于CISP系列、PMP等等国内网安证书、网络安全交流群请关注公众号后点菜单栏的找棉花糖。
糖心会员站,网络安全必备网站,包括在线内网靶场、web靶场、src靶场、应急响应靶场,以及各种网安资料、教程、方案模版、以及超级多在线工具,99元包年!详细介绍:棉花糖会员站介绍(26年4月26日版本) :在线内网靶场、网安资料方案、在线工具全能资源站,看完介绍百分百心动!
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论