Java类:team.bangbang.common.cipher.CipherUtil

一、相关方法说明

本类包括3方面作用: 1. 十六进制字符串和字节数组之间相互转换; 2. 判断字符串、字节数组是否为空; 3. 清空字节数组。

相关使用参见Java doc文档。

二、使用示例

加密后的内容转为十六进制字符串:

// 加密
byte[] bts = SM2Utils.encrypt(pubKey, plainText.getBytes());
System.out.println("密文是:" + CipherUtil.byte2hex(bts));

Java类:team.bangbang.common.cipher.SM2Utils

一、相关方法说明

SM2非对称加解密。

相关使用参见Java doc文档。

二、使用示例

SM2加解密:

KeyPair kp = SM2Utils.generateSM2KeyPair();
String plainText = "{Id: 123, name: 张三}";
System.out.println("明文1:" + plainText);
// 公钥加密
PublicKey pubKey = kp.getPublic();
// 加密
byte[] bts = SM2Utils.encrypt(pubKey, plainText.getBytes());
System.out.println("密文:" + CipherUtil.byte2hex(bts));
// 私钥解密
PrivateKey priKey = kp.getPrivate();
bts = SM2Utils.decrypt(priKey, bts);
System.out.println("明文2:" + new String(bts));

Java类:team.bangbang.common.cipher.SM3Utils

一、相关方法说明

SM3摘要计算,类似于MD5。

相关使用参见Java doc文档。

二、使用示例

SM3摘要计算:

String plainText = "{Id: 123, name: 张三}4";
// 签名
String s = SM3Utils.digest(plainText.getBytes());
System.out.println("摘要签名是:" + s);

Java类:team.bangbang.common.cipher.SM4Utils

一、相关方法说明

SM4加解密,SM4加解密的流程如下: 1.创建指定长度的Seed; 2.使用Seed创建加解密Key; 3.创建指定长度的Seed; 4.使用Seed创建加解密向量IV; 5.使用KEY、IV执行加解密。

相关使用参见Java doc文档。

二、使用示例

SM4加解密:

String plainText = "{Id: 123, name: 张三}";
// Key
SecretKey key = SM4Utils.generateKey(SM4Utils.generateSeed(16));
// IV
byte[] iv = SM4Utils.generateIv(SM4Utils.generateSeed(16));
// 加密
byte[] bts = SM4Utils.encryptCbc(plainText.getBytes(), key, iv);
System.out.println("密文:" + CipherUtil.byte2hex(bts));
// 解密
bts = SM4Utils.decryptCbc(bts, key, iv);
System.out.println("明文:" + new String(bts));