SM2_SM3_SM4Encrypt
项目介绍
最近有一个项目需要用到国密算法 , 具体是需要对接硬件加密机调用加密机的JAVA接口实现国密的一整套流程 , 但是由于公司测试环境和阿里云硬件加密机不通 , 所以只能自己模拟加密机的接口实现一套国密的软加密实现 。将有关国密的代码提取并分享出来 , 并且提供了详细的测试代码以供参考 。
项目中包括SM2算法的加密/解密/签名/验签 , SM3算法的摘要计算 , SM4算法的对称加密/解密 , 以及相应算法的公私钥对的生成方法。
项目测试脚本使用
在项目中的test包下SecurityTestAll.java类中的main方法下有SM2/SM3/SM4的按照加解密流程实现的一整套测试脚本 , 直接直接执行可以输出如下测试结果:
--产生SM2秘钥--:
公钥:04ec7e40b8dfa4b14383f703ec5403b71db0ab505b9fc41f0df45a9910a307dfbd5b3c5afdd4b90d79fa0ab70d53fd88422df77e09b254a53e72b4857f74ab1da4
私钥:58967e2beb6fffd3c96545eebd3000b39c10087d48faa0d41f9c7bf3720e0ea4
--测试加密开始--
原文UTF-8转hex:49204c6f766520596f75
加密:
密文:1b40e51d8462d97ac1cc9929039313152b8067eecfcff7ba0348a721d3f4d257e83f924364b84147879906d62a72472403a3c3d36d4cf243055ff77a4c794909673cc0e39954fbc8b01c50a4b708216d4d19c400719734b98bc0a6d7da92a078b6ef8dd9713cee910276
解密:I Love You
--测试加密结束--
--测试SM2签名--
原文hex:49204c6f7