public final class RSAUtils extends Object
字符串格式的密钥在未在特殊说明情况下都为BASE64编码格式
由于非对称加密速度极其缓慢,一般文件不使用它来加密而是使用对称加密,
非对称加密算法可以用来对对称加密的密钥加密,这样保证密钥的安全也就保证了数据的安全
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
KEY_ALGORITHM
加密算法RSA
|
static String |
KEY_ALGORITHM_PADDING
填充方式
|
static String |
SIGNATURE_ALGORITHM
签名算法
|
| 构造器和说明 |
|---|
RSAUtils() |
| 限定符和类型 | 方法和说明 |
|---|---|
static PrivateKey |
decodePrivateKey(String key)
从字符串解码私钥
|
static PublicKey |
decodePublicKey(String publicKey)
从字符串解码公钥
|
static byte[] |
decryptByPrivateKey(byte[] data,
RSAPrivateKey privateKey)
私钥解密
|
static byte[] |
decryptByPrivateKey(byte[] data,
String privateKey)
私钥解密
|
static byte[] |
decryptByPublicKey(byte[] data,
String publicKey)
公钥解密
|
static String |
encodeBase64(Key key)
编码密钥,便于存储
|
static byte[] |
encryptByPrivateKey(byte[] data,
String privateKey)
私钥加密
|
static byte[] |
encryptByPublicKey(byte[] data,
RSAPublicKey publicKey)
公钥加密
|
static byte[] |
encryptByPublicKey(byte[] data,
String publicKey)
公钥加密
|
static RSAPrivateKey |
getPrivateKey(String modulus,
String exponent)
使用模和指数生成RSA私钥
注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,
不同JDK默认的补位方式可能不同,如Android默认是RSA
/None/NoPadding】
|
static RSAPublicKey |
getPublicKey(String modulus,
String exponent)
使用模和指数生成RSA公钥
注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,
不同JDK默认的补位方式可能不同,如Android默认是RSA
/None/NoPadding】
|
static String |
sign(byte[] data,
String privateKey)
用私钥对信息生成数字签名
|
static boolean |
verify(byte[] data,
String publicKey,
String sign)
校验数字签名
|
public static String encodeBase64(Key key) throws Exception
key - keyException - Exceptionpublic static PrivateKey decodePrivateKey(String key) throws Exception
key - keyException - Exceptionpublic static PublicKey decodePublicKey(String publicKey) throws Exception
publicKey - publicKeyException - Exceptionpublic static String sign(byte[] data, String privateKey) throws Exception
data - data 已加密数据privateKey - privateKey 私钥(BASE64编码)Exception - Exceptionpublic static boolean verify(byte[] data,
String publicKey,
String sign)
throws Exception
data - data 已加密数据publicKey - publicKey 公钥(BASE64编码)sign - sign 数字签名Exception - Exceptionpublic static RSAPublicKey getPublicKey(String modulus, String exponent)
modulus - modulus 模exponent - exponent 指数public static RSAPrivateKey getPrivateKey(String modulus, String exponent)
modulus - modulus 模exponent - exponent 指数public static byte[] encryptByPublicKey(byte[] data,
RSAPublicKey publicKey)
data - datapublicKey - publicKeypublic static byte[] decryptByPrivateKey(byte[] data,
RSAPrivateKey privateKey)
data - dataprivateKey - privateKeypublic static byte[] decryptByPrivateKey(byte[] data,
String privateKey)
throws Exception
data - data 已加密数据privateKey - privateKey 私钥(BASE64编码)Exception - Exceptionpublic static byte[] decryptByPublicKey(byte[] data,
String publicKey)
throws Exception
data - data 已加密数据publicKey - publicKey 公钥(BASE64编码)Exception - Exceptionpublic static byte[] encryptByPublicKey(byte[] data,
String publicKey)
throws Exception
data - data 源数据publicKey - publicKey 公钥(BASE64编码)Exception - ExceptionCopyright © 2016. All rights reserved.