chenjiahe
2022-05-25 c5dc0bf1fe4d377da3522b19c440200a3cdde46d
src/main/java/com/hx/util/rsa/RSASignature.java
@@ -1,11 +1,13 @@
package com.hx.util.rsa;
import com.hx.util.StringUtils;
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.*;
/**
@@ -25,7 +27,7 @@
     * @param encode 字符集编码
     * @return 签名值
     */
    public static String sign(String content, String privateKey, String encode) {
    public static String createSign(String content, String privateKey, String encode) {
        try {
            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec( Base64.decode(privateKey) );
@@ -49,7 +51,7 @@
        return null;
    }
    public static String sign(String content, String privateKey) {
    public static String createSign(String content, String privateKey) {
        try{
            PKCS8EncodedKeySpec priPKCS8    = new PKCS8EncodedKeySpec( Base64.decode(privateKey) );
            KeyFactory keyf = KeyFactory.getInstance("RSA");
@@ -119,4 +121,29 @@
        return false;
    }
    /**
     * ASCII码递增排序(剔除空值)
     * @param params
     * @return
     */
    public static String getSignCheckContent(Map<String, String> params) {
        if (params == null) {
            return null;
        } else {
            StringBuilder content = new StringBuilder();
            List<String> keys = new ArrayList(params.keySet());
            Collections.sort(keys);
            for(int i = 0; i < keys.size(); ++i) {
                String key = (String)keys.get(i);
                String value = String.valueOf(params.get(key));
                if(StringUtils.isEmpty(value)){
                    continue;
                }
                content.append(i == 0 ? "" : "&").append(key).append("=").append(value);
            }
            return content.toString();
        }
    }
}