...
代码块 |
---|
|
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);
companyId=1&nonce=123456&opfid=65499870709224111111&secret=2222222222222222×tamp=1625194549051&uid=1000010001
--signature→>c1e0401e25926f3d42de2f03fc989eec4f15b01d |
SHA1Util参考代码
代码块 |
---|
|
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(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("getSha1 error", var9);
throw new RuntimeException(var9.getMessage(), var9);
}
} else {
return null;
}
}
}
|
后续技术对接,首先执行联合登录接口。开放平台目前只支持HTML联合登录的方式(即浏览器访问如下示例)
...