# 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不兼容,第一步中的可以完美实现前后端匹配