public class SM2 extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static class |
SM2.EncodeType |
static class |
SM2.Mode |
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
BC04 |
static String |
CRYPTO_NAME_SM2 |
| 构造器和说明 |
|---|
SM2() |
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
certVerify(String certStr,
String plaintext,
String signValueStr)
证书验签
|
static String |
decrypt(String priKey,
String cipherData)
SM2解密算法
|
static String |
decrypt(String priKey,
String cipherData,
int cipherMode,
SM2.EncodeType inputType,
SM2.EncodeType outType)
SM2解密算法
|
static String |
decrypt(String priKey,
String cipherData,
SM2.EncodeType inputType,
SM2.EncodeType outType)
解密
|
static String |
encrypt(String pubKey,
String data)
SM2加密算法
|
static String |
encrypt(String pubKey,
String data,
int cipherMode,
SM2.EncodeType inputType,
SM2.EncodeType outType)
SM2加密算法
|
static String |
encrypt(String pubKey,
String data,
SM2.EncodeType inputType,
SM2.EncodeType outType)
SM2加密算法
|
static String |
encrypt(String pubKey,
String data,
SM2.Mode mode,
SM2.EncodeType inputType,
SM2.EncodeType outType)
加密
|
static SM2KeyPair |
generateSm2Keys(boolean compressed)
生成SM2公私钥对
BC库使用的公钥=64个字节+1个字节(04标志位),BC库使用的私钥=32个字节
SM2秘钥的组成部分有 私钥D,公钥X,公钥Y, 他们都可以用长度为64的16进制的HEX串表示,
SM2公钥并不是直接由X+Y表示, 而是额外添加了一个头,当启用压缩时:公钥=有头+公钥X,即省略了公钥Y的部分
|
static void |
main(String[] args) |
static String |
sign(String priKey,
String plainText)
签名
|
static boolean |
verify(String pubKey,
String plainText,
String signatureValue)
验签
|
public static SM2KeyPair generateSm2Keys(boolean compressed)
BC库使用的公钥=64个字节+1个字节(04标志位),BC库使用的私钥=32个字节 SM2秘钥的组成部分有 私钥D,公钥X,公钥Y, 他们都可以用长度为64的16进制的HEX串表示, SM2公钥并不是直接由X+Y表示, 而是额外添加了一个头,当启用压缩时:公钥=有头+公钥X,即省略了公钥Y的部分
compressed - 是否压缩公钥(加密解密都使用BC库才能使用压缩)public static String encrypt(String pubKey, String data)
pubKey - 公钥data - 待加密的数据public static String encrypt(String pubKey, String data, SM2.EncodeType inputType, SM2.EncodeType outType)
pubKey - 公钥data - 待加密的数据inputType - 输入数据类型outType - 输出数据类型public static String encrypt(String pubKey, String data, SM2.Mode mode, SM2.EncodeType inputType, SM2.EncodeType outType)
pubKey - 公钥data - 待加密的数据mode - 模式
CIPHER_MODE_BC BC库默认排序方式-C1C2C3
CIPHER_MODE_NORM 国密标准排序方式-C1C3C2inputType - 输入数据类型outType - 输出数据类型public static String encrypt(String pubKey, String data, int cipherMode, SM2.EncodeType inputType, SM2.EncodeType outType)
pubKey - 公钥data - 待加密的数据cipherMode - 密文排列方式0-C1C2C3;1-C1C3C2;public static String decrypt(String priKey, String cipherData)
priKey - 私钥cipherData - 密文数据public static String decrypt(String priKey, String cipherData, SM2.EncodeType inputType, SM2.EncodeType outType)
priKey - 私钥cipherData - 密文数据inputType - 输入数据类型outType - 输出数据类型public static String decrypt(String priKey, String cipherData, int cipherMode, SM2.EncodeType inputType, SM2.EncodeType outType)
priKey - 私钥cipherData - 密文数据cipherMode - 密文排列方式 0-C1C2C3;1-C1C3C2;public static String sign(String priKey, String plainText)
priKey - 私钥plainText - 待签名文本public static boolean verify(String pubKey, String plainText, String signatureValue)
pubKey - 公钥plainText - 明文signatureValue - 签名public static boolean certVerify(String certStr, String plaintext, String signValueStr)
certStr - 证书串plaintext - 签名原文signValueStr - 签名产生签名值 此处的签名值实际上就是 R和S的sequencepublic static void main(String[] args)
Copyright © 2023. All rights reserved.