前段时间,某项目压测,需要验证SSO login功能接口性能。发现login请求中为了安全,使用了签名验签算法。

于是从开发那要过来算法API ,用java代码实现。方便根据签名验签,生成批量的url信息(保存到参数化文件中),供login接口直接使用。
authorization API局部内容:
authorization = 签名+":"+时间戳
签名= Base64(HMAC-MD5(HTTP Method + HTTP Resource + TimeStamp + DATA, AccessKey))
下面分开来介绍具体实现:
1)auth算法实现:
/**
* 实现auth算法
* @param method
* @param path
* @param body
* @param accessKey
* @return
*/
public static String auth(String method,String path,String body,String accessKey){
long timestamp = new Date().getTime();
String requestVars = method+path+timestamp+body;
try {
byte[] signHmacMD5 = Hmacmd5.encryptHMAC(requestVars.getBytes(StandardCharsets.UTF_8),accessKey);
String signature = Base64.getEncoder().encodeToString(signHmacMD5);
String okStr = signature + ":" + timestamp;
System.out.println("******************signature:"+signature);
return java.net.URLEncoder.encode(okStr, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* MAC算法可选以下多种算法
*
* <pre>
* HmacMD5
* HmacSHA1
* HmacSHA256
* HmacSHA384
* HmacSHA512
* </pre>
*/
public static final String KEY_MAC = "HmacMD5";
/**
* HMAC加密
*
* @param data
* @param key
* @return
* @throws Exception
*/
public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
SecretKey secretKey = new SecretKeySpec(key.getBytes(), KEY_MAC);
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
retur

本文介绍了如何使用Java实现SSO login功能接口的性能验证,通过获取签名验签算法,创建批量参数化URL,模拟真实场景下的登录性能测试。
最低0.47元/天 解锁文章
1001

被折叠的 条评论
为什么被折叠?



