添加sm2加密工具类

release_1.0.0
xueqingkun 8 months ago
parent 7b9d194a5b
commit 30ea11fc10

@ -87,6 +87,11 @@
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
</dependencies>
<build>

@ -0,0 +1,97 @@
package com.supervision.knowsub.util;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.SM2;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
public class SM2Util {
private static SM2 sm2 = getSM2();
/**
* ; 使使
*/
public static void generateKey() {
KeyPair pair = SecureUtil.generateKeyPair("SM2");
PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();
System.out.println("private:"+Base64.encode(privateKey.getEncoded()));
System.out.println("public:"+Base64.encode(publicKey.getEncoded()));
}
/**
*
* @param content
* @param sign
* @return truefalse
*/
public static boolean verify(String content,String sign){
return sm2.verifyHex(HexUtil.encodeHexStr(content), sign);
}
/**
*
* @param content
* @return base64
*/
public static String encryptBase64(String content){
return sm2.encryptBase64(content,KeyType.PublicKey);
}
/**
*
* @param data
* @return
*/
public static String decrypt(String data){
return sm2.decryptStr(data, KeyType.PrivateKey);
}
/**
*
* @param content
* @return 142
*/
public static String sign(String content){
return sm2.signHex(HexUtil.encodeHexStr(content));
}
public static SM2 getSM2(){
String privateKey = ResourceUtil.readUtf8Str("sm2_private.key");
String publicKey = ResourceUtil.readUtf8Str("sm2_public.key");
return new SM2(privateKey, publicKey);
}
public static void main(String[] args) {
String content = "张三里斯忘我ss **##";
String encryptBase64 = encryptBase64(content);
System.out.println("加密结果:"+encryptBase64);
String decrypt = decrypt(encryptBase64);
System.out.println("解密结果:"+decrypt);
String sign = sign(content);
System.out.println("签名结果:"+sign);
boolean verify = verify(content, sign);
System.out.println("正向验证结果:"+verify);
boolean verify1 = verify("djaoidf", sign);
System.out.println("反向验证结果:"+verify1);
}
}

@ -0,0 +1 @@
MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgIc/Neoxk2aVlkKS4WyHJQ6NTWRMcaSh7dqAeH7gHKyegCgYIKoEcz1UBgi2hRANCAASSC2D8SWIwi6S2QmAzuiJXwtcTHcPsY/Epd4y6VOy0x5OZ4+hXdAq9KrXtRXJlbho1x8+0Rifr396CChxfYcAN

@ -0,0 +1 @@
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEkgtg/EliMIuktkJgM7oiV8LXEx3D7GPxKXeMulTstMeTmePoV3QKvSq17UVyZW4aNcfPtEYn69/eggocX2HADQ==

@ -35,6 +35,7 @@
<knife4j.version>4.5.0</knife4j.version>
<lombok.version>1.18.20</lombok.version>
<poi-ooxml.version>4.1.2</poi-ooxml.version>
<org.bouncycastle.bcprov-jdk15on>1.70</org.bouncycastle.bcprov-jdk15on>
<mysql-connector-java.version>8.0.26</mysql-connector-java.version>
</properties>
@ -93,7 +94,11 @@
<artifactId>poi-ooxml</artifactId>
<version>${poi-ooxml.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>${org.bouncycastle.bcprov-jdk15on}</version>
</dependency>
</dependencies>
</dependencyManagement>

Loading…
Cancel
Save