版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
languagejava
themeEclipse
SortedMap<String, String> map = new TreeMap<String, String>();
map.put("opfid", opfid);
map.put("nonce", nonce);
map.put("timestamp", timestamp);
map.put("secret", secret);
map.put("uid", uid);
String signature = SHA1Util.createSHA1Sign(map);
System.err.println("--signature生成signature-->>" + signature);
companyId


打印信息:
--拼接计算signature的入参-->>companyId=1&nonce=123456&opfid=65499870709224111111&secret=2222222222222222&timestamp=1625194549051&uid=1000010001
--生成signature--signature→>c1e0401e25926f3d42de2f03fc989eec4f15b01d>>c1e0401e25926f3d42de2f03fc989eec4f15b01d
SHA1Util参考代码
代码块
languagejava
collapsetrue
package com.base.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.Iterator;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.Map.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SHA1Util {
    protected static final Logger logger = LoggerFactory.getLogger(SHA1Util.class);

    public SHA1Util() {
    }

    public static String getTimeStamp() {
        return String.valueOf(System.currentTimeMillis() / 1000L);
    }

    public static String createSHA1Sign(SortedMap<String, String> signParams) {
        StringBuffer sb = new StringBuffer();
        Set es = signParams.entrySet();
        Iterator it = es.iterator();

        while(it.hasNext()) {
            Entry params = (Entry)it.next();
            String k = (String)params.getKey();
            String v = (String)params.getValue();
            sb.append(k + "=" + v + "&");
        }

        String params1 = sb.substring(0, sb.lastIndexOf("&"));
        System.out.println("--拼接计算signature的入参-->>"+params1);
        return getSha1(params1);
    }

    public static String getSha1(String str) {
        if(str != null && str.length() != 0) {
            char[] hexDigits = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

            try {
                MessageDigest e = MessageDigest.getInstance("SHA1");
                e.update(str.getBytes("UTF-8"));
                byte[] md = e.digest();
                int j = md.length;
                char[] buf = new char[j * 2];
                int k = 0;

                for(int i = 0; i < j; ++i) {
                    byte byte0 = md[i];
                    buf[k++] = hexDigits[byte0 >>> 4 & 15];
                    buf[k++] = hexDigits[byte0 & 15];
                }

                return new String(buf);
            } catch (Exception var9) {
                logger.error("--计算signature--getSha1 error", var9);
                throw new RuntimeException(var9.getMessage(), var9);
            }
        } else {
            return null;
        }
    }
}


...