Commit 4b730ec5 by jinxin

随机字符串生成算法

parent 8240465d
...@@ -140,7 +140,7 @@ public class AppOrderApiServiceImpl implements AppOrderApiService { ...@@ -140,7 +140,7 @@ public class AppOrderApiServiceImpl implements AppOrderApiService {
long timeStamp = System.currentTimeMillis() / 1000; long timeStamp = System.currentTimeMillis() / 1000;
//签名算法 //签名算法
SignatureGetterUtil signatureGetterUtil = new SignatureGetterUtil(secret); SignatureGetterUtil signatureGetterUtil = new SignatureGetterUtil(secret);
String nonceStr = signatureGetterUtil.genNonce(); String nonceStr = signatureGetterUtil.generateRandomString(12);
String sig = null; String sig = null;
map2.put("order_type", qdto.getOrderType()); map2.put("order_type", qdto.getOrderType());
map2.put("case_id", promotionCaseId); map2.put("case_id", promotionCaseId);
...@@ -201,7 +201,7 @@ public class AppOrderApiServiceImpl implements AppOrderApiService { ...@@ -201,7 +201,7 @@ public class AppOrderApiServiceImpl implements AppOrderApiService {
long timeStamp = System.currentTimeMillis() / 1000; long timeStamp = System.currentTimeMillis() / 1000;
//签名算法 //签名算法
SignatureGetterUtil signatureGetterUtil = new SignatureGetterUtil(secret); SignatureGetterUtil signatureGetterUtil = new SignatureGetterUtil(secret);
String nonceStr = signatureGetterUtil.genNonce(); String nonceStr = signatureGetterUtil.generateRandomString(12);
String sig = null; String sig = null;
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("order_id", appOrder.getOrderId()); json.put("order_id", appOrder.getOrderId());
......
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import javax.crypto.Mac; import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.*; import java.util.*;
public class SignatureGetterUtil { public class SignatureGetterUtil {
...@@ -61,17 +62,16 @@ public class SignatureGetterUtil { ...@@ -61,17 +62,16 @@ public class SignatureGetterUtil {
* *
* @return 随机字符串 * @return 随机字符串
*/ */
public String genNonce() { private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
return bytesToHex(Long.toString(System.nanoTime()).getBytes(StandardCharsets.UTF_8)); public static String generateRandomString(int length) {
} SecureRandom random = new SecureRandom();
private String bytesToHex(final byte[] hash) { StringBuilder sb = new StringBuilder(length);
Formatter formatter = new Formatter(); for (int i = 0; i < length; i++) {
for (byte b : hash) { int randomIndex = random.nextInt(CHARACTERS.length());
formatter.format("%02x", b); char randomChar = CHARACTERS.charAt(randomIndex);
sb.append(randomChar);
} }
String result = formatter.toString(); return sb.toString();
formatter.close();
return result;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment