# sm2_sm3_sm4
**Repository Path**: ntc6868/sm2_sm3_sm4
## Basic Information
- **Project Name**: sm2_sm3_sm4
- **Description**: sm2_sm3_sm4
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/bestman_456/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-04-24
- **Last Updated**: 2023-04-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 1. sm2_sm3_sm4
本地安装 SM2-SM3-SM4.jar
```xml
com.yl
SM2-SM3-SM4
1.0.0
org.bouncycastle
bcprov-jdk15on
1.60
```
my内是把jar内SM2,SM3,SM4代码提取出来实现的,这样不用安装本地jar了
# 2. SM2-SM3-SM4加解密-vue
前端同样实现 SM2,SM3,SM4
# 3. 测试
```java
String key = "1234567812345678";
String plntxt = BZC46346c7OKgExItgYXq5gNuRMk/3k4hf5/NgvSOaOVvT4Y8xkY1vEhxRInz3+dSIrXAB3DnQhXvPfoycRY/TachieTvG2UScoMlVngbOUu6ObvuuTiqbc4TZE0N9n3xmzQ5SyRMiYFUs2aDXFvwQS9M2PCeGWXPHZNnZqJfUYVBE0AxravLNZ+SVyH94XAuzXYqH932GYX8pvyM5G1amB1yGSmcMLMhEOyhHxMw1Q/kU183WWjikUBAJ7r0PTsqflImKbvATpTmxyjl65RoUK8TOrT0u0inGAn77blgJFIXtc2jdTKgvY4dyBz1Gf9PTs/wyMtR8KshCanC+czHfsNtq6z+hrfvREclRVDfq7klTBlgqlU40i49SQVlnW7ard/TcR3lhrfEpCsBADvIrnsxKPO6sPdndH8cznRH7Si05rU67Q2Ume9LkmLgbI8wUA9e5U3LkKFhXwQvDtqyaYnvOiIBYZ57U/JOLBARWjXlK7T4WlTXDmucZi/2XTUH5F9l24j2EdZ4WIHhk9nIP40LeSR+PrTrQLsw7Ao7nm5D8j3jrIa3KyUPSFvpkNojVhWEig3CiU5vvqwUxLP2q0v/9g==";
String s = SM4Util.decryptBody(plntxt, key);
System.out.println(s);
JSONObject jsonObject = JSON.parseObject(s, Feature.OrderedField);
String verifyStr = jsonObject.getString("verify");
String dataStr = jsonObject.getJSONObject("data").toJSONString();
boolean b = SM2.verifySign(dataStr, verifyStr, "BPMd9m9FMeBmWatnMMdcafiAJCBmGVlrw1MRor7iRmytIN6ilcCKZnnDBb6XSqPV4tuai1nYrfg3SFTJAPmCKME=");
System.out.println(b);
```
# 4. 参考gitee 项目 https://gitee.com/brent-geng/SM2_SM3_SM4Encrypt.git
```
cn.xjfme
SM2_SM3_SM4Encrypt
1.0.0-SNAPSHOT
```
这里虽然实现了SM2,SM3.SM4,但是SM2加解密和加签验签和前端实现的SM2不兼容,第一步中的可以完美实现前后端匹配