public class Builder extends Object
| Modifier and Type | Field and Description |
|---|---|
static String |
CERT_TYPE_X509
Certification类型:X.509
|
static int |
DEFAULT_KEY_SIZE
默认密钥字节数
|
static org.bouncycastle.asn1.ASN1ObjectIdentifier |
ID_SM2_PUBLIC_KEY_PARAM
SM2国密算法公钥参数的Oid标识
|
static String |
KEY_TYPE_JKS
Java密钥库(Java Key Store,JKS)KEY_STORE
|
static String |
KEY_TYPE_PKCS12
PKCS12是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件
|
static String |
SM2_DEFAULT_CURVE
SM2默认曲线
|
static org.bouncycastle.crypto.params.ECDomainParameters |
SM2_DOMAIN_PARAMS
SM2推荐曲线参数(来自https://github.com/ZZMarquis/gmhelper)
|
| Constructor and Description |
|---|
Builder() |
| Modifier and Type | Method and Description |
|---|---|
static void |
addProvider(Provider provider)
增加加密解密的算法提供者,默认优先使用,例如:
|
static byte[] |
changeC1C2C3ToC1C3C2(byte[] c1c2c3,
org.bouncycastle.crypto.params.ECDomainParameters ecDomainParameters)
bc加解密使用旧标c1||c2||c3,此方法在加密后调用,将结果转化为c1||c3||c2
|
static byte[] |
changeC1C3C2ToC1C2C3(byte[] c1c3c2,
org.bouncycastle.crypto.params.ECDomainParameters ecDomainParameters)
bc加解密使用旧标c1||c3||c2,此方法在解密前调用,将密文转化为c1||c2||c3再去解密
|
static boolean |
checkpw(String password,
String hashed)
验证密码是否与Bcrypt加密后的密文匹配
|
static Cipher |
createCipher(String algorithm)
创建
Cipher |
static MacEngine |
createHmacSm3Engine(byte[] key)
创建HmacSM3算法的
MacEngine |
static Mac |
createMac(String algorithm)
创建
Mac |
static MessageDigest |
createMessageDigest(String algorithm)
|
static KeySpec |
createOpenSSHPrivateKeySpec(byte[] key)
创建
OpenSSHPrivateKeySpec |
static KeySpec |
createOpenSSHPublicKeySpec(byte[] key)
创建
OpenSSHPublicKeySpec |
static Signature |
createSignature(String algorithm)
|
static org.bouncycastle.asn1.ASN1Object |
decode(InputStream in)
读取ASN.1数据流为
ASN1Object |
static byte[] |
decode(String key)
解码字符串密钥,可支持的编码如下:
|
static PublicKey |
decodeECPoint(byte[] encodeByte,
String curveName)
解码恢复EC压缩公钥,支持Base64和Hex编码,(基于BouncyCastle)
|
static PublicKey |
decodeECPoint(String encode,
String curveName)
解码恢复EC压缩公钥,支持Base64和Hex编码,(基于BouncyCastle)
见:https://www.cnblogs.com/xinzhao/p/8963724.html
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
decodePrivateKeyParams(byte[] privateKeyBytes)
尝试解析转换各种类型私钥为
ECPrivateKeyParameters,支持包括:
D值
PKCS#8
PKCS#1
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
decodePublicKeyParams(byte[] publicKeyBytes)
尝试解析转换各种类型公钥为
ECPublicKeyParameters,支持包括:
Q值
X.509
PKCS#1
|
static byte[] |
decrypt(String algorithm,
String key,
byte[] content)
数据解密
|
static InputStream |
decrypt(String algorithm,
String key,
InputStream inputStream)
数据解密
|
static String |
decrypt(String algorithm,
String key,
String content,
Charset charset)
数据解密
|
static Digester |
digester(org.aoju.bus.core.lang.Algorithm algorithm)
新建摘要器
|
static Digester |
digester(String algorithm)
新建摘要器
|
static byte[] |
encode(org.bouncycastle.asn1.ASN1Encodable... elements)
编码为DER格式
|
static byte[] |
encode(String asn1Encoding,
org.bouncycastle.asn1.ASN1Encodable... elements)
编码为指定ASN1格式
|
static void |
encode(String asn1Encoding,
OutputStream out,
org.bouncycastle.asn1.ASN1Encodable... elements)
编码为指定ASN1格式
|
static byte[] |
encodeECPrivateKey(PrivateKey privateKey)
只获取私钥里的d,32字节
|
static byte[] |
encodeECPublicKey(PublicKey publicKey)
编码压缩EC公钥(基于BouncyCastle),即Q值
见:https://www.cnblogs.com/xinzhao/p/8963724.html
|
static byte[] |
encodeECPublicKey(PublicKey publicKey,
boolean isCompressed)
编码压缩EC公钥(基于BouncyCastle),即Q值
见:https://www.cnblogs.com/xinzhao/p/8963724.html
|
static byte[] |
encrypt(String algorithm,
String key,
byte[] content)
数据加密
|
static InputStream |
encrypt(String algorithm,
String key,
InputStream inputStream)
数据加密
|
static String |
encrypt(String algorithm,
String key,
String content,
Charset charset)
数据加密
|
static SecretKey |
generateDESKey(String algorithm,
byte[] key)
生成
SecretKey |
static SecretKey |
generateKey(String algorithm)
生成
SecretKey,仅用于对称加密和摘要算法密钥生成 |
static SecretKey |
generateKey(String algorithm,
byte[] key)
生成
SecretKey,仅用于对称加密和摘要算法密钥生成 |
static SecretKey |
generateKey(String algorithm,
int keySize)
生成
SecretKey,仅用于对称加密和摘要算法密钥生成
当指定keySize<0时,AES默认长度为128,其它算法不指定。 |
static SecretKey |
generateKey(String algorithm,
int keySize,
SecureRandom random)
生成
SecretKey,仅用于对称加密和摘要算法密钥生成
当指定keySize<0时,AES默认长度为128,其它算法不指定。 |
static SecretKey |
generateKey(String algorithm,
KeySpec keySpec)
生成
SecretKey,仅用于对称加密和摘要算法 |
static KeyPair |
generateKeyPair(String algorithm)
生成用于非对称加密的公钥和私钥,仅用于非对称加密
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
AlgorithmParameterSpec params)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
byte[] seed,
AlgorithmParameterSpec param)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
int keySize)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
int keySize,
byte[] seed)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
int keySize,
byte[] seed,
AlgorithmParameterSpec... params)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static KeyPair |
generateKeyPair(String algorithm,
int keySize,
SecureRandom random,
AlgorithmParameterSpec... params)
生成用于非对称加密的公钥和私钥
密钥对生成算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator
|
static SecretKey |
generatePBEKey(String algorithm,
char[] key)
生成PBE
SecretKey |
static PrivateKey |
generatePrivateKey(KeyStore keyStore,
String alias,
char[] password)
生成私钥,仅用于非对称加密
|
static PrivateKey |
generatePrivateKey(String algorithm,
byte[] key)
生成私钥,仅用于非对称加密
采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static PrivateKey |
generatePrivateKey(String algorithm,
KeySpec keySpec)
生成私钥,仅用于非对称加密
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static PublicKey |
generatePublicKey(String algorithm,
byte[] key)
生成公钥,仅用于非对称加密
采用X509证书规范
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static PublicKey |
generatePublicKey(String algorithm,
KeySpec keySpec)
生成公钥,仅用于非对称加密
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static PrivateKey |
generateRSAPrivateKey(byte[] key)
生成RSA私钥,仅用于非对称加密
采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static PublicKey |
generateRSAPublicKey(byte[] key)
生成RSA公钥,仅用于非对称加密
采用X509证书规范
算法见:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyFactory
|
static String |
getAlgorithmAfterWith(String algorithm)
获取用于密钥生成的算法
获取XXXwithXXX算法的后半部分算法,如果为ECDSA或SM2,返回算法为EC
|
static Certificate |
getCertificate(KeyStore keyStore,
String alias)
获得 Certification
|
static CertificateFactory |
getCertificateFactory(String type)
|
static String |
getDumpStr(InputStream in)
获取ASN1格式的导出格式,一般用于调试
|
static KeyFactory |
getKeyFactory(String algorithm)
|
static KeyGenerator |
getKeyGenerator(String algorithm)
|
static KeyPair |
getKeyPair(KeyStore keyStore,
char[] password,
String alias)
从KeyStore中获取私钥公钥
|
static KeyPair |
getKeyPair(String type,
InputStream in,
char[] password,
String alias)
从KeyStore中获取私钥公钥
|
static KeyPairGenerator |
getKeyPairGenerator(String algorithm)
|
static String |
getMainAlgorithm(String algorithm)
获取主体算法名,例如RSA/ECB/PKCS1Padding的主体算法是RSA
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
getPublicParams(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParameters)
根据私钥参数获取公钥参数
|
static PublicKey |
getRSAPublicKey(BigInteger modulus,
BigInteger publicExponent)
获得RSA公钥对象
|
static PublicKey |
getRSAPublicKey(PrivateKey privateKey)
通过RSA私钥生成RSA公钥
|
static PublicKey |
getRSAPublicKey(String modulus,
String publicExponent)
获得RSA公钥对象
|
static SecretKeyFactory |
getSecretKeyFactory(String algorithm)
|
static String |
hashpw(String password)
生成Bcrypt加密后的密文
|
static HMac |
hmac(org.aoju.bus.core.lang.Algorithm algorithm,
byte[] key)
创建HMac对象,调用digest方法可获得hmac值
|
static HMac |
hmac(org.aoju.bus.core.lang.Algorithm algorithm,
SecretKey key)
创建HMac对象,调用digest方法可获得hmac值
|
static HMac |
hmac(org.aoju.bus.core.lang.Algorithm algorithm,
String key)
创建HMac对象,调用digest方法可获得hmac值
|
static HMac |
hmacMd5()
HmacMD5加密器,生成随机KEY
例:
HmacMD5加密:hmacMd5().digest(data)
HmacMD5加密并转为16进制字符串:hmacMd5().digestHex(data)
|
static HMac |
hmacMd5(byte[] key)
HmacMD5加密器
例:
HmacMD5加密:hmacMd5(key).digest(data)
HmacMD5加密并转为16进制字符串:hmacMd5(key).digestHex(data)
|
static HMac |
hmacMd5(String key)
HmacMD5加密器
例:
HmacMD5加密:hmacMd5(key).digest(data)
HmacMD5加密并转为16进制字符串:hmacMd5(key).digestHex(data)
|
static HMac |
hmacSha1()
HmacSHA1加密器,生成随机KEY
例:
HmacSHA1加密:hmacSha1().digest(data)
HmacSHA1加密并转为16进制字符串:hmacSha1().digestHex(data)
|
static HMac |
hmacSha1(byte[] key)
HmacSHA1加密器
例:
HmacSHA1加密:hmacSha1(key).digest(data)
HmacSHA1加密并转为16进制字符串:hmacSha1(key).digestHex(data)
|
static HMac |
hmacSha1(String key)
HmacSHA1加密器
例:
HmacSHA1加密:hmacSha1(key).digest(data)
HmacSHA1加密并转为16进制字符串:hmacSha1(key).digestHex(data)
|
static HMac |
hmacSha256()
HmacSHA256加密器,生成随机KEY
例:
HmacSHA256加密:hmacSha256().digest(data)
HmacSHA256加密并转为16进制字符串:hmacSha256().digestHex(data)
|
static HMac |
hmacSha256(byte[] key)
HmacSHA256加密器
例:
HmacSHA256加密:hmacSha256(key).digest(data)
HmacSHA256加密并转为16进制字符串:hmacSha256(key).digestHex(data)
|
static HMac |
hmacSha256(String key)
HmacSHA256加密器
例:
HmacSHA256加密:hmacSha256(key).digest(data)
HmacSHA256加密并转为16进制字符串:hmacSha256(key).digestHex(data)
|
static MD5 |
md5()
MD5加密
例:
|
static byte[] |
md5(byte[] data)
计算32位MD5摘要值
|
static byte[] |
md5(File file)
计算32位MD5摘要值
|
static byte[] |
md5(InputStream data)
计算32位MD5摘要值
|
static byte[] |
md5(String data)
计算32位MD5摘要值,使用UTF-8编码
|
static byte[] |
md5(String data,
String charset)
计算32位MD5摘要值
|
static String |
md5Hex(byte[] data)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex(File file)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex(InputStream data)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex(String data)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex(String data,
Charset charset)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex(String data,
String charset)
计算32位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex16(byte[] data)
计算16位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex16(File file)
计算16位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex16(InputStream data)
计算16位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex16(String data)
计算16位MD5摘要值,并转为16进制字符串
|
static String |
md5Hex16(String data,
Charset charset)
计算16位MD5摘要值,并转为16进制字符串
|
static String |
md5HexTo16(String md5Hex)
32位MD5转16位MD5
|
static Certificate |
readCertificate(String type,
InputStream in)
读取Certification文件
Certification为证书文件
see: http://snowolf.iteye.com/blog/391931
|
static Certificate |
readCertificate(String type,
InputStream in,
char[] password,
String alias)
读取Certification文件
Certification为证书文件
see: http://snowolf.iteye.com/blog/391931
|
static KeyStore |
readJKSKeyStore(File keyFile,
char[] password)
读取密钥库(Java Key Store,JKS) KeyStore文件
KeyStore文件用于数字证书的密钥对保存
see: http://snowolf.iteye.com/blog/391931
|
static KeyStore |
readJKSKeyStore(InputStream in,
char[] password)
读取密钥库(Java Key Store,JKS) KeyStore文件
KeyStore文件用于数字证书的密钥对保存
see: http://snowolf.iteye.com/blog/391931
|
static KeyStore |
readKeyStore(String type,
File keyFile,
char[] password)
读取KeyStore文件
KeyStore文件用于数字证书的密钥对保存
see: http://snowolf.iteye.com/blog/391931
|
static KeyStore |
readKeyStore(String type,
InputStream in,
char[] password)
读取KeyStore文件
KeyStore文件用于数字证书的密钥对保存
see: http://snowolf.iteye.com/blog/391931
|
static byte[] |
readPem(InputStream keyStream)
从pem流中读取公钥或私钥
|
static Key |
readPemKey(InputStream keyStream)
从pem文件中读取公钥或私钥
根据类型返回
PublicKey 或者 PrivateKey |
static org.bouncycastle.util.io.pem.PemObject |
readPemObject(InputStream keyStream)
读取pem文件中的信息,包括类型、头信息和密钥内容
|
static org.bouncycastle.util.io.pem.PemObject |
readPemObject(Reader reader)
读取pem文件中的信息,包括类型、头信息和密钥内容
|
static KeyStore |
readPKCS12KeyStore(File keyFile,
char[] password)
读取PKCS12 KeyStore文件
KeyStore文件用于数字证书的密钥对保存
|
static KeyStore |
readPKCS12KeyStore(InputStream in,
char[] password)
读取PKCS12 KeyStore文件
KeyStore文件用于数字证书的密钥对保存
|
static PrivateKey |
readPrivateKey(InputStream pemStream)
读取PEM格式的私钥
|
static PublicKey |
readPublicKey(InputStream pemStream)
读取PEM格式的公钥
|
static PublicKey |
readPublicKeyFromCert(InputStream in)
读取X.509 Certification文件中的公钥
Certification为证书文件
see: https://www.cnblogs.com/yinliang/p/10115519.html
|
static PrivateKey |
readSm2PemPrivateKey(InputStream keyStream)
读取OpenSSL生成的ANS1格式的Pem私钥文件,必须为PKCS#1格式
|
static Certificate |
readX509Certificate(InputStream in)
读取X.509 Certification文件
Certification为证书文件
see: http://snowolf.iteye.com/blog/391931
|
static Certificate |
readX509Certificate(InputStream in,
char[] password,
String alias)
读取X.509 Certification文件
Certification为证书文件
see: http://snowolf.iteye.com/blog/391931
|
static RSA |
rsa()
创建RSA算法对象
生成新的私钥公钥对
|
static RSA |
rsa(byte[] privateKey,
byte[] publicKey)
创建RSA算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static RSA |
rsa(String privateKey,
String publicKey)
创建RSA算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static byte[] |
rsAsn1ToPlain(byte[] rsDer)
BC的SM3withSM2签名得到的结果的rs是asn1格式的,这个方法转化成直接拼接r||s
|
static byte[] |
rsPlainToAsn1(byte[] sign)
BC的SM3withSM2验签需要的rs是asn1格式的,这个方法将直接拼接r||s的字节数组转化成asn1格式
|
static Digester |
sha1()
SHA1加密
例:
SHA1加密:sha1().digest(data)
SHA1加密并转为16进制字符串:sha1().digestHex(data)
|
static byte[] |
sha1(byte[] data)
计算SHA-1摘要值
|
static byte[] |
sha1(File file)
计算SHA-1摘要值
|
static byte[] |
sha1(InputStream data)
计算SHA-1摘要值
|
static byte[] |
sha1(String data)
计算sha1摘要值,使用UTF-8编码
|
static byte[] |
sha1(String data,
String charset)
计算SHA-1摘要值
|
static String |
sha1Hex(byte[] data)
计算SHA-1摘要值,并转为16进制字符串
|
static String |
sha1Hex(File file)
计算SHA-1摘要值,并转为16进制字符串
|
static String |
sha1Hex(InputStream data)
计算SHA-1摘要值,并转为16进制字符串
|
static String |
sha1Hex(String data)
计算SHA-1摘要值,并转为16进制字符串
|
static String |
sha1Hex(String data,
String charset)
计算SHA-1摘要值,并转为16进制字符串
|
static Digester |
sha256()
SHA256加密
例:
SHA256加密:sha256().digest(data)
SHA256加密并转为16进制字符串:sha256().digestHex(data)
|
static byte[] |
sha256(byte[] data)
计算SHA-256摘要值
|
static byte[] |
sha256(File file)
计算SHA-256摘要值
|
static byte[] |
sha256(InputStream data)
计算SHA-256摘要值
|
static byte[] |
sha256(String data)
计算sha256摘要值,使用UTF-8编码
|
static byte[] |
sha256(String data,
String charset)
计算SHA-256摘要值
|
static String |
sha256Hex(byte[] data)
计算SHA-1摘要值,并转为16进制字符串
|
static String |
sha256Hex(File file)
计算SHA-256摘要值,并转为16进制字符串
|
static String |
sha256Hex(InputStream data)
计算SHA-256摘要值,并转为16进制字符串
|
static String |
sha256Hex(String data)
计算SHA-256摘要值,并转为16进制字符串
|
static String |
sha256Hex(String data,
String charset)
计算SHA-256摘要值,并转为16进制字符串
|
static Sign |
sign(org.aoju.bus.core.lang.Algorithm algorithm)
创建签名算法对象
生成新的私钥公钥对
|
static Sign |
sign(org.aoju.bus.core.lang.Algorithm algorithm,
byte[] privateKey,
byte[] publicKey)
创建Sign算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
|
static Sign |
sign(org.aoju.bus.core.lang.Algorithm algorithm,
String privateKey,
String publicKey)
创建签名算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
|
static String |
signParams(org.aoju.bus.core.lang.Algorithm algorithm,
Map<?,?> params,
String... other)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
|
static String |
signParams(org.aoju.bus.core.lang.Algorithm algorithm,
Map<?,?> params,
String separator,
String keyValueSeparator,
boolean isIgnoreNull,
String... other)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
|
static String |
signParams(Crypto crypto,
Map<?,?> params,
String... other)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
|
static String |
signParams(Crypto crypto,
Map<?,?> params,
String separator,
String keyValueSeparator,
boolean isIgnoreNull,
String... other)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
|
static String |
signParamsMd5(Map<?,?> params,
String... other)
对参数做md5签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
|
static String |
signParamsSha1(Map<?,?> params,
String... other)
对参数做Sha1签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
|
static String |
signParamsSha256(Map<?,?> params,
String... other)
对参数做Sha256签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
|
static SM2 |
sm2()
创建SM2算法对象
生成新的私钥公钥对
|
static SM2 |
sm2(byte[] privateKey,
byte[] publicKey)
创建SM2算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static SM2 |
sm2(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParams,
org.bouncycastle.crypto.params.ECPublicKeyParameters publicKeyParams)
创建SM2算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static SM2 |
sm2(PrivateKey privateKey,
PublicKey publicKey)
创建SM2算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static SM2 |
sm2(String privateKey,
String publicKey)
创建SM2算法对象
私钥和公钥同时为空时生成一对新的私钥和公钥
私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
|
static SM3 |
sm3()
SM3加密
例:
SM3加密:sm3().digest(data)
SM3加密并转为16进制字符串:sm3().digestHex(data)
|
static SM3 |
sm3(byte[] salt)
SM3加密,可以传入盐
|
static String |
sm3(File dataFile)
SM3加密文件,生成16进制SM3字符串
|
static String |
sm3(InputStream data)
SM3加密,生成16进制SM3字符串
|
static String |
sm3(String data)
SM3加密,生成16进制SM3字符串
|
static SM4 |
sm4()
SM4加密,生成随机KEY 注意解密时必须使用相同
SM4对象或者使用相同KEY
例: |
static SM4 |
sm4(byte[] key)
SM4加密
例:
|
static org.bouncycastle.crypto.params.ECDomainParameters |
toDomainParams(org.bouncycastle.jce.spec.ECParameterSpec parameterSpec)
构建ECDomainParameters对象
|
static org.bouncycastle.crypto.params.ECDomainParameters |
toDomainParams(String curveName)
构建ECDomainParameters对象
|
static org.bouncycastle.crypto.params.ECDomainParameters |
toDomainParams(org.bouncycastle.asn1.x9.X9ECParameters x9ECParameters)
构建ECDomainParameters对象
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toParams(BigInteger x,
BigInteger y,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toParams(BigInteger d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toParams(byte[] xBytes,
byte[] yBytes,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toParams(byte[] d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.AsymmetricKeyParameter |
toParams(Key key)
密钥转换为AsymmetricKeyParameter
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toParams(PrivateKey privateKey)
私钥转换为
ECPrivateKeyParameters |
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toParams(PublicKey publicKey)
公钥转换为
ECPublicKeyParameters |
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toParams(String dHex,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toParams(String xHex,
String yHex,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static String |
toPem(String type,
byte[] content)
将私钥或公钥转换为PEM格式的字符串
|
static byte[] |
toPkcs1(PrivateKey privateKey)
Java中的PKCS#8格式私钥转换为OpenSSL支持的PKCS#1格式
|
static byte[] |
toPkcs1(PublicKey publicKey)
Java中的X.509格式公钥转换为OpenSSL支持的PKCS#1格式
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(BigInteger d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(byte[] d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(PrivateKey privateKey)
私钥转换为
ECPrivateKeyParameters |
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(String d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(BigInteger x,
BigInteger y,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(byte[] xBytes,
byte[] yBytes,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(byte[] pointEncoded,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(org.bouncycastle.math.ec.ECPoint point,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(PublicKey publicKey)
公钥转换为
ECPublicKeyParameters |
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(String pointEncoded,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(String x,
String y,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2Params(BigInteger d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2Params(byte[] d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2Params(byte[] xBytes,
byte[] yBytes)
转换为SM2的ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2Params(String d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2Params(String xHex,
String yHex)
转换为SM2的ECPublicKeyParameters
|
static PrivateKey |
toSm2PrivateKey(org.bouncycastle.asn1.sec.ECPrivateKey privateKey)
将SM2算法的
ECPrivateKey 转换为 PrivateKey |
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(BigInteger d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(byte[] d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(String d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(byte[] q)
转换为 ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(byte[] xBytes,
byte[] yBytes)
转换为SM2的ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(String q)
转换为 ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(String x,
String y)
转换为SM2的ECPublicKeyParameters
|
static void |
writePemObject(org.bouncycastle.util.io.pem.PemObjectGenerator pemObject,
OutputStream keyStream)
写出pem密钥(私钥、公钥、证书)
|
static void |
writePemObject(org.bouncycastle.util.io.pem.PemObjectGenerator pemObject,
Writer writer)
写出pem密钥(私钥、公钥、证书)
|
static void |
writePemObject(String type,
byte[] content,
OutputStream keyStream)
写出pem密钥(私钥、公钥、证书)
|
static void |
writePemObject(String type,
byte[] content,
Writer writer)
写出pem密钥(私钥、公钥、证书)
|
public static final String KEY_TYPE_JKS
public static final String KEY_TYPE_PKCS12
public static final String CERT_TYPE_X509
public static final int DEFAULT_KEY_SIZE
RSA/DSA Default Keysize 1024 Keysize must be a multiple of 64, ranging from 512 to 1024 (inclusive).
public static final String SM2_DEFAULT_CURVE
Default SM2 curve
public static final org.bouncycastle.crypto.params.ECDomainParameters SM2_DOMAIN_PARAMS
public static final org.bouncycastle.asn1.ASN1ObjectIdentifier ID_SM2_PUBLIC_KEY_PARAM
public static MD5 md5()
MD5加密:md5().digest(data) MD5加密并转为16进制字符串:md5().digestHex(data)
Digesterpublic static byte[] md5(byte[] data)
data - 被摘要数据public static byte[] md5(String data, String charset)
data - 被摘要数据charset - 编码public static byte[] md5(String data)
data - 被摘要数据public static byte[] md5(InputStream data)
data - 被摘要数据public static byte[] md5(File file)
file - 被摘要文件public static String md5Hex(byte[] data)
data - 被摘要数据public static String md5Hex(String data, String charset)
data - 被摘要数据charset - 编码public static String md5Hex(String data, Charset charset)
data - 被摘要数据charset - 编码public static String md5Hex(String data)
data - 被摘要数据public static String md5Hex(InputStream data)
data - 被摘要数据public static String md5Hex(File file)
file - 被摘要文件public static String md5Hex16(byte[] data)
data - 被摘要数据public static String md5Hex16(String data, Charset charset)
data - 被摘要数据charset - 编码public static String md5Hex16(String data)
data - 被摘要数据public static String md5Hex16(InputStream data)
data - 被摘要数据public static String md5Hex16(File file)
file - 被摘要文件public static String md5HexTo16(String md5Hex)
md5Hex - 32位MD5public static Digester sha1()
Digesterpublic static byte[] sha1(byte[] data)
data - 被摘要数据public static byte[] sha1(String data, String charset)
data - 被摘要数据charset - 编码public static byte[] sha1(String data)
data - 被摘要数据public static byte[] sha1(InputStream data)
data - 被摘要数据public static byte[] sha1(File file)
file - 被摘要文件public static String sha1Hex(byte[] data)
data - 被摘要数据public static String sha1Hex(String data, String charset)
data - 被摘要数据charset - 编码public static String sha1Hex(String data)
data - 被摘要数据public static String sha1Hex(InputStream data)
data - 被摘要数据public static String sha1Hex(File file)
file - 被摘要文件public static Digester sha256()
Digesterpublic static byte[] sha256(byte[] data)
data - 被摘要数据public static byte[] sha256(String data, String charset)
data - 被摘要数据charset - 编码public static byte[] sha256(String data)
data - 被摘要数据public static byte[] sha256(InputStream data)
data - 被摘要数据public static byte[] sha256(File file)
file - 被摘要文件public static String sha256Hex(byte[] data)
data - 被摘要数据public static String sha256Hex(String data, String charset)
data - 被摘要数据charset - 编码public static String sha256Hex(String data)
data - 被摘要数据public static String sha256Hex(InputStream data)
data - 被摘要数据public static String sha256Hex(File file)
file - 被摘要文件public static HMac hmac(org.aoju.bus.core.lang.Algorithm algorithm, String key)
algorithm - Algorithmkey - 密钥,如果为null生成随机密钥HMacpublic static HMac hmac(org.aoju.bus.core.lang.Algorithm algorithm, byte[] key)
algorithm - Algorithmkey - 密钥,如果为null生成随机密钥HMacpublic static HMac hmac(org.aoju.bus.core.lang.Algorithm algorithm, SecretKey key)
public static HMac hmacMd5(String key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacMd5(byte[] key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacMd5()
HMacpublic static HMac hmacSha1(String key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacSha1(byte[] key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacSha1()
HMacpublic static HMac hmacSha256(String key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacSha256(byte[] key)
key - 加密密钥,如果为null生成随机密钥HMacpublic static HMac hmacSha256()
HMacpublic static RSA rsa(String privateKey, String publicKey)
privateKey - 私钥Base64publicKey - 公钥Base64RSApublic static RSA rsa(byte[] privateKey, byte[] publicKey)
privateKey - 私钥publicKey - 公钥RSApublic static Sign sign(org.aoju.bus.core.lang.Algorithm algorithm)
algorithm - 签名算法Signpublic static Sign sign(org.aoju.bus.core.lang.Algorithm algorithm, String privateKey, String publicKey)
algorithm - 签名算法privateKey - 私钥Base64publicKey - 公钥Base64Signpublic static Sign sign(org.aoju.bus.core.lang.Algorithm algorithm, byte[] privateKey, byte[] publicKey)
algorithm - 算法枚举privateKey - 私钥publicKey - 公钥Signpublic static Digester digester(org.aoju.bus.core.lang.Algorithm algorithm)
algorithm - 签名算法public static Digester digester(String algorithm)
algorithm - 签名算法public static SM2 sm2(String privateKey, String publicKey)
privateKey - 私钥Hex或Base64表示publicKey - 公钥Hex或Base64表示SM2public static SM2 sm2(byte[] privateKey, byte[] publicKey)
privateKey - 私钥,必须使用PKCS#8规范publicKey - 公钥,必须使用X509规范SM2public static SM2 sm2(PrivateKey privateKey, PublicKey publicKey)
privateKey - 私钥publicKey - 公钥SM2public static SM2 sm2(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParams, org.bouncycastle.crypto.params.ECPublicKeyParameters publicKeyParams)
privateKeyParams - 私钥参数publicKeyParams - 公钥参数SM2public static SM3 sm3()
SM3public static String sm3(InputStream data)
data - 数据public static String sm3(File dataFile)
dataFile - 被加密文件public static SM4 sm4()
SM4对象或者使用相同KEY
例:
SM4加密:sm4().encrypt(data) SM4解密:sm4().decrypt(data)
SM4public static SM4 sm4(byte[] key)
SM4加密:sm4(key).encrypt(data) SM4解密:sm4(key).decrypt(data)
key - 密钥SM4public static byte[] encrypt(String algorithm, String key, byte[] content)
algorithm - 加密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型content - 需要加密的内容public static String encrypt(String algorithm, String key, String content, Charset charset)
algorithm - 解密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型content - 需要加密的内容charset - 字符集public static InputStream encrypt(String algorithm, String key, InputStream inputStream)
algorithm - 加密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型inputStream - 需要加密的内容public static byte[] decrypt(String algorithm, String key, byte[] content)
algorithm - 加密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型content - 需要解密的内容public static String decrypt(String algorithm, String key, String content, Charset charset)
algorithm - 解密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型content - 需要解密的内容charset - 字符集public static InputStream decrypt(String algorithm, String key, InputStream inputStream)
algorithm - 解密算法key - 密钥, 字符串使用,分割
格式: 私钥,公钥,类型inputStream - 需要解密的内容public static byte[] encode(org.bouncycastle.asn1.ASN1Encodable... elements)
elements - ASN.1元素public static byte[] encode(String asn1Encoding, org.bouncycastle.asn1.ASN1Encodable... elements)
asn1Encoding - 编码格式,见ASN1Encoding,可选DER、BER或DLelements - ASN.1元素public static void encode(String asn1Encoding, OutputStream out, org.bouncycastle.asn1.ASN1Encodable... elements)
asn1Encoding - 编码格式,见ASN1Encoding,可选DER、BER或DLout - 输出流elements - ASN.1元素public static org.bouncycastle.asn1.ASN1Object decode(InputStream in)
ASN1Objectin - ASN.1数据ASN1Objectpublic static String getDumpStr(InputStream in)
in - ASN.1数据ASN1Object的字符串表示形式ASN1Dump.dumpAsString(Object)public static byte[] encodeECPrivateKey(PrivateKey privateKey)
privateKey - PublicKey,必须为org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPrivateKeypublic static byte[] encodeECPublicKey(PublicKey publicKey)
publicKey - PublicKey,必须为org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKeypublic static byte[] encodeECPublicKey(PublicKey publicKey, boolean isCompressed)
publicKey - PublicKey,必须为org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKeyisCompressed - 是否压缩public static byte[] decode(String key)
1. Hex(16进制)编码 1. Base64编码
key - 被解码的密钥字符串public static PublicKey decodeECPoint(String encode, String curveName)
encode - 压缩公钥curveName - EC曲线名public static PublicKey decodeECPoint(byte[] encodeByte, String curveName)
encodeByte - 压缩公钥curveName - EC曲线名,例如SM2_DOMAIN_PARAMSpublic static org.bouncycastle.crypto.params.ECDomainParameters toDomainParams(org.bouncycastle.jce.spec.ECParameterSpec parameterSpec)
parameterSpec - ECParameterSpecECDomainParameterspublic static org.bouncycastle.crypto.params.ECDomainParameters toDomainParams(String curveName)
curveName - Curve名称ECDomainParameterspublic static org.bouncycastle.crypto.params.ECDomainParameters toDomainParams(org.bouncycastle.asn1.x9.X9ECParameters x9ECParameters)
x9ECParameters - X9ECParametersECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2Params(String d)
d - 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toParams(String dHex, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
dHex - 私钥d值16进制字符串domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2Params(byte[] d)
d - 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toParams(byte[] d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d - 私钥d值domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2Params(BigInteger d)
d - 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toParams(BigInteger d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d - 私钥d值domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toParams(BigInteger x, BigInteger y, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
x - 公钥Xy - 公钥YdomainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2Params(String xHex, String yHex)
xHex - 公钥XyHex - 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toParams(String xHex, String yHex, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
xHex - 公钥XyHex - 公钥YdomainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2Params(byte[] xBytes,
byte[] yBytes)
xBytes - 公钥XyBytes - 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toParams(byte[] xBytes,
byte[] yBytes,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
xBytes - 公钥XyBytes - 公钥YdomainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toParams(PublicKey publicKey)
ECPublicKeyParameterspublicKey - 公钥,传入null返回nullECPublicKeyParameters或nullpublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toParams(PrivateKey privateKey)
ECPrivateKeyParametersprivateKey - 私钥,传入null返回nullECPrivateKeyParameters或nullpublic static byte[] toPkcs1(PrivateKey privateKey)
privateKey - PKCS#8格式私钥public static byte[] toPkcs1(PublicKey publicKey)
publicKey - X.509格式公钥public static String signParams(Crypto crypto, Map<?,?> params, String... other)
crypto - 对称加密算法params - 参数other - 其它附加参数字符串(例如密钥)public static String signParams(Crypto crypto, Map<?,?> params, String separator, String keyValueSeparator, boolean isIgnoreNull, String... other)
crypto - 对称加密算法params - 参数separator - entry之间的连接符keyValueSeparator - kv之间的连接符isIgnoreNull - 是否忽略null的键和值other - 其它附加参数字符串(例如密钥)public static String signParamsMd5(Map<?,?> params, String... other)
params - 参数other - 其它附加参数字符串(例如密钥)public static String signParamsSha1(Map<?,?> params, String... other)
params - 参数other - 其它附加参数字符串(例如密钥)public static String signParamsSha256(Map<?,?> params, String... other)
params - 参数other - 其它附加参数字符串(例如密钥)public static String signParams(org.aoju.bus.core.lang.Algorithm algorithm, Map<?,?> params, String... other)
algorithm - 摘要算法params - 参数other - 其它附加参数字符串(例如密钥)public static String signParams(org.aoju.bus.core.lang.Algorithm algorithm, Map<?,?> params, String separator, String keyValueSeparator, boolean isIgnoreNull, String... other)
algorithm - 摘要算法params - 参数separator - entry之间的连接符keyValueSeparator - kv之间的连接符isIgnoreNull - 是否忽略null的键和值other - 其它附加参数字符串(例如密钥)public static org.bouncycastle.crypto.params.AsymmetricKeyParameter toParams(Key key)
key - PrivateKey或者PublicKeypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters getPublicParams(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParameters)
privateKeyParameters - 私钥参数public static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(byte[] q)
q - 公钥Q值public static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(String q)
q - 公钥Q值public static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(String x, String y)
x - 公钥Xy - 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(byte[] xBytes,
byte[] yBytes)
xBytes - 公钥XyBytes - 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(String x, String y, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
x - 公钥Xy - 公钥YdomainParameters - ECDomainParametersnull则返回nullpublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(byte[] xBytes,
byte[] yBytes,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
xBytes - 公钥XyBytes - 公钥YdomainParameters - ECDomainParameters曲线参数public static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(BigInteger x, BigInteger y, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
x - 公钥Xy - 公钥YdomainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(String pointEncoded, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
pointEncoded - 被编码的曲线坐标点domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(byte[] pointEncoded,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
pointEncoded - 被编码的曲线坐标点domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(org.bouncycastle.math.ec.ECPoint point,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
point - 曲线坐标点domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(PublicKey publicKey)
ECPublicKeyParameterspublicKey - 公钥,传入null返回nullECPublicKeyParameters或nullpublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(String d)
d - 私钥d值16进制字符串public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(byte[] d)
d - 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(BigInteger d)
d - 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(String d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d - 私钥d值16进制字符串domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(byte[] d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d - 私钥d值domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(BigInteger d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d - 私钥d值domainParameters - ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(PrivateKey privateKey)
ECPrivateKeyParametersprivateKey - 私钥,传入null返回nullECPrivateKeyParameters或nullpublic static PrivateKey toSm2PrivateKey(org.bouncycastle.asn1.sec.ECPrivateKey privateKey)
ECPrivateKey 转换为 PrivateKeyprivateKey - ECPrivateKeyPrivateKeypublic static SecretKey generateKey(String algorithm)
SecretKey,仅用于对称加密和摘要算法密钥生成algorithm - 算法,支持PBE算法SecretKeypublic static KeySpec createOpenSSHPrivateKeySpec(byte[] key)
OpenSSHPrivateKeySpeckey - 私钥,需为PKCS#1格式OpenSSHPrivateKeySpecpublic static KeySpec createOpenSSHPublicKeySpec(byte[] key)
OpenSSHPublicKeySpeckey - 公钥,需为PKCS#1格式OpenSSHPublicKeySpecpublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters decodePrivateKeyParams(byte[] privateKeyBytes)
ECPrivateKeyParameters,支持包括:
privateKeyBytes - 私钥ECPrivateKeyParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters decodePublicKeyParams(byte[] publicKeyBytes)
ECPublicKeyParameters,支持包括:
publicKeyBytes - 公钥ECPublicKeyParameterspublic static SecretKey generateKey(String algorithm, int keySize)
SecretKey,仅用于对称加密和摘要算法密钥生成
当指定keySize<0时,AES默认长度为128,其它算法不指定。algorithm - 算法,支持PBE算法keySize - 密钥长度,<0表示不设定密钥长度,即使用默认长度SecretKeypublic static SecretKey generateKey(String algorithm, int keySize, SecureRandom random)
SecretKey,仅用于对称加密和摘要算法密钥生成
当指定keySize<0时,AES默认长度为128,其它算法不指定。algorithm - 算法,支持PBE算法keySize - 密钥长度,<0表示不设定密钥长度,即使用默认长度random - 随机数生成器,null表示默认SecretKeypublic static SecretKey generateKey(String algorithm, byte[] key)
SecretKey,仅用于对称加密和摘要算法密钥生成algorithm - 算法key - 密钥,如果为null 自动生成随机密钥SecretKeypublic static SecretKey generateDESKey(String algorithm, byte[] key)
SecretKeyalgorithm - DES算法,包括DES、DESede等key - 密钥SecretKeypublic static SecretKey generatePBEKey(String algorithm, char[] key)
SecretKeyalgorithm - PBE算法,包括:PBEWithMD5AndDES、PBEWithSHA1AndDESede、PBEWithSHA1AndRC2_40等key - 密钥SecretKeypublic static SecretKey generateKey(String algorithm, KeySpec keySpec)
SecretKey,仅用于对称加密和摘要算法public static PrivateKey generateRSAPrivateKey(byte[] key)
key - 密钥,必须为DER编码存储PrivateKeypublic static PublicKey generatePublicKey(String algorithm, byte[] key)
algorithm - 算法key - 密钥,必须为DER编码存储PublicKeypublic static PrivateKey generatePrivateKey(String algorithm, byte[] key)
algorithm - 算法,如RSA、EC、SM2等key - 密钥,PKCS#8格式PrivateKeypublic static PrivateKey generatePrivateKey(String algorithm, KeySpec keySpec)
algorithm - 算法,如RSA、EC、SM2等keySpec - KeySpecPrivateKeypublic static PrivateKey generatePrivateKey(KeyStore keyStore, String alias, char[] password)
keyStore - KeyStorealias - 别名password - 密码PrivateKeypublic static PublicKey generateRSAPublicKey(byte[] key)
key - 密钥,必须为DER编码存储PublicKeypublic static KeyPair generateKeyPair(String algorithm, AlgorithmParameterSpec params)
algorithm - 非对称加密算法params - AlgorithmParameterSpecKeyPairpublic static KeyPair generateKeyPair(String algorithm, byte[] seed, AlgorithmParameterSpec param)
algorithm - 非对称加密算法param - AlgorithmParameterSpecseed - 种子KeyPairpublic static PublicKey generatePublicKey(String algorithm, KeySpec keySpec)
public static KeyPair generateKeyPair(String algorithm)
algorithm - 非对称加密算法KeyPairpublic static KeyPair generateKeyPair(String algorithm, int keySize)
algorithm - 非对称加密算法keySize - 密钥模(modulus )长度KeyPairpublic static KeyPair generateKeyPair(String algorithm, int keySize, byte[] seed)
algorithm - 非对称加密算法keySize - 密钥模(modulus )长度seed - 种子KeyPairpublic static KeyPair generateKeyPair(String algorithm, int keySize, byte[] seed, AlgorithmParameterSpec... params)
对于非对称加密算法,密钥长度有严格限制,具体如下:
RSA:
RS256、PS256:2048 bits RS384、PS384:3072 bits RS512、RS512:4096 bits
EC(Elliptic Curve):
EC256:256 bits EC384:384 bits EC512:512 bits
algorithm - 非对称加密算法keySize - 密钥模(modulus )长度(单位bit)seed - 种子params - AlgorithmParameterSpecKeyPairpublic static KeyPair generateKeyPair(String algorithm, int keySize, SecureRandom random, AlgorithmParameterSpec... params)
对于非对称加密算法,密钥长度有严格限制,具体如下:
RSA:
RS256、PS256:2048 bits RS384、PS384:3072 bits RS512、RS512:4096 bits
EC(Elliptic Curve):
EC256:256 bits EC384:384 bits EC512:512 bits
algorithm - 非对称加密算法keySize - 密钥模(modulus )长度(单位bit)random - SecureRandom 对象,创建时可选传入seedparams - AlgorithmParameterSpecKeyPairpublic static KeyPairGenerator getKeyPairGenerator(String algorithm)
algorithm - 非对称加密算法KeyPairGeneratorpublic static KeyFactory getKeyFactory(String algorithm)
algorithm - 非对称加密算法KeyFactorypublic static KeyStore readJKSKeyStore(File keyFile, char[] password)
keyFile - 证书文件password - 密码KeyStorepublic static SecretKeyFactory getSecretKeyFactory(String algorithm)
algorithm - 对称加密算法KeyFactorypublic static KeyStore readPKCS12KeyStore(File keyFile, char[] password)
keyFile - 证书文件password - 密码KeyStorepublic static KeyStore readPKCS12KeyStore(InputStream in, char[] password)
in - InputStream 如果想从文件读取.keystore文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码KeyStorepublic static KeyStore readKeyStore(String type, File keyFile, char[] password)
type - 类型keyFile - 证书文件password - 密码,null表示无密码KeyStorepublic static KeyGenerator getKeyGenerator(String algorithm)
algorithm - 对称加密算法KeyGeneratorpublic static KeyPair getKeyPair(String type, InputStream in, char[] password, String alias)
type - 类型in - InputStream 如果想从文件读取.keystore文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码alias - 别名KeyPairpublic static String getMainAlgorithm(String algorithm)
algorithm - XXXwithXXX算法public static String getAlgorithmAfterWith(String algorithm)
algorithm - XXXwithXXX算法public static KeyStore readJKSKeyStore(InputStream in, char[] password)
in - InputStream 如果想从文件读取.keystore文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码KeyStorepublic static KeyStore readKeyStore(String type, InputStream in, char[] password)
type - 类型in - InputStream 如果想从文件读取.keystore文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码,null表示无密码KeyStorepublic static KeyPair getKeyPair(KeyStore keyStore, char[] password, String alias)
public static Certificate readX509Certificate(InputStream in, char[] password, String alias)
in - InputStream 如果想从文件读取.cer文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码alias - 别名KeyStorepublic static PublicKey readPublicKeyFromCert(InputStream in)
in - InputStream 如果想从文件读取.cer文件,使用 FileKit.getInputStream(java.io.File) 读取KeyStorepublic static Certificate readX509Certificate(InputStream in)
in - InputStream 如果想从文件读取.cer文件,使用 FileKit.getInputStream(java.io.File) 读取KeyStorepublic static Certificate readCertificate(String type, InputStream in, char[] password, String alias)
type - 类型,例如X.509in - InputStream 如果想从文件读取.cer文件,使用 FileKit.getInputStream(java.io.File) 读取password - 密码alias - 别名KeyStorepublic static Certificate readCertificate(String type, InputStream in)
type - 类型,例如X.509in - InputStream 如果想从文件读取.cer文件,使用 FileKit.getInputStream(java.io.File) 读取Certificatepublic static Certificate getCertificate(KeyStore keyStore, String alias)
keyStore - KeyStorealias - 别名Certificatepublic static CertificateFactory getCertificateFactory(String type)
type - 类型,例如X.509KeyPairGeneratorpublic static PublicKey getRSAPublicKey(PrivateKey privateKey)
privateKey - RSA私钥public static PublicKey getRSAPublicKey(String modulus, String publicExponent)
modulus - ModuluspublicExponent - Public Exponentpublic static byte[] readPem(InputStream keyStream)
keyStream - pem流public static PublicKey getRSAPublicKey(BigInteger modulus, BigInteger publicExponent)
modulus - ModuluspublicExponent - Public Exponentpublic static PrivateKey readPrivateKey(InputStream pemStream)
pemStream - pem流PrivateKeypublic static PublicKey readPublicKey(InputStream pemStream)
pemStream - pem流PublicKeypublic static Key readPemKey(InputStream keyStream)
PublicKey 或者 PrivateKeykeyStream - pem流Key,null表示无法识别的密钥类型public static void writePemObject(String type, byte[] content, OutputStream keyStream)
type - 密钥类型(私钥、公钥、证书)content - 密钥内容,需为PKCS#1格式keyStream - pem流public static void writePemObject(String type, byte[] content, Writer writer)
type - 密钥类型(私钥、公钥、证书)content - 密钥内容,需为PKCS#1格式writer - pemWriterpublic static org.bouncycastle.util.io.pem.PemObject readPemObject(InputStream keyStream)
keyStream - pem流PemObjectpublic static org.bouncycastle.util.io.pem.PemObject readPemObject(Reader reader)
reader - pem ReaderPemObjectpublic static PrivateKey readSm2PemPrivateKey(InputStream keyStream)
keyStream - 私钥pem流PrivateKeypublic static String toPem(String type, byte[] content)
type - 密钥类型(私钥、公钥、证书)content - 密钥内容public static void writePemObject(org.bouncycastle.util.io.pem.PemObjectGenerator pemObject,
OutputStream keyStream)
pemObject - pem对象,包括密钥和密钥类型等信息keyStream - pem流public static void writePemObject(org.bouncycastle.util.io.pem.PemObjectGenerator pemObject,
Writer writer)
pemObject - pem对象,包括密钥和密钥类型等信息writer - pemWriterpublic static String hashpw(String password)
password - 明文密码public static boolean checkpw(String password, String hashed)
password - 明文密码hashed - hash值(加密后的值)public static byte[] changeC1C2C3ToC1C3C2(byte[] c1c2c3,
org.bouncycastle.crypto.params.ECDomainParameters ecDomainParameters)
c1c2c3 - 加密后的bytes,顺序为C1C2C3ecDomainParameters - ECDomainParameterspublic static byte[] changeC1C3C2ToC1C2C3(byte[] c1c3c2,
org.bouncycastle.crypto.params.ECDomainParameters ecDomainParameters)
c1c3c2 - 加密后的bytes,顺序为C1C3C2ecDomainParameters - ECDomainParameterspublic static byte[] rsAsn1ToPlain(byte[] rsDer)
rsDer - rs in asn1 formatpublic static byte[] rsPlainToAsn1(byte[] sign)
sign - 字节数组public static MacEngine createHmacSm3Engine(byte[] key)
MacEnginekey - 密钥MacEnginepublic static void addProvider(Provider provider)
addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
provider - 算法提供者public static Cipher createCipher(String algorithm)
Cipheralgorithm - 算法Cipherpublic static MessageDigest createMessageDigest(String algorithm)
algorithm - 算法MessageDigestpublic static Mac createMac(String algorithm)
Macalgorithm - 算法MacCopyright © 2021. All rights reserved.