Commit 4b730ec5 by jinxin

随机字符串生成算法

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