YzCloudSignature 是有赞云 RSA 签名/验签工具类,支持 SHA1WithRSA 算法。本文档介绍如何将其独立接入到您的项目中,无需依赖有赞云 SDK。pom.xml 中添加以下依赖:<!-- Apache Commons Lang - 字符串工具 -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- Apache Commons Codec - Base64 编解码 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<!-- Apache Commons IO - IO 工具 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- BouncyCastle - 加密库 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
YzCloudSignature.java 文件复制到您的项目中:com.yourpackage.utils.YzCloudSignaturepackage 声明。MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC...
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----| 方法 | 说明 |
|---|---|
String rsaSign(Map<String, String> params, String privateKey) | RSA 签名,返回 Base64 编码的签名 |
String rsaSignContent(String content, String privateKey, String charset) | 对指定内容进行 RSA 签名 |
String getSignContent(Map<String, String> params) | 获取签名内容(过滤空值,参数按字典序排序) |
| 方法 | 说明 |
|---|---|
boolean rsaCheck(Map<String, String> params, String publicKey) | RSA 验签,自动从 params 中获取 sign 字段 |
boolean rsaCheckContent(String content, String sign, String publicKey, String charset) | 对指定内容进行 RSA 验签 |
String getSignCheckContent(Map<String, String> params) | 获取验签内容(去除 sign 字段后,参数按字典序排序) |
| 方法 | 说明 |
|---|---|
PrivateKey getPrivateKeyFromPKCS8(String algorithm, InputStream ins) | 从 PKCS8 格式字符串解析私钥 |
PublicKey getPublicKeyFromX509(String algorithm, InputStream ins) | 从 X509 格式字符串解析公钥 |