一、 背景:
最近有个项目需要接口测试,接口都是通过aksk认证对请求进行加密签名,分享一下Jmeter解决方案。
二、 AK/SK:
AK/SK认证
通过API网关向下层服务发送请求时,必须使用AK(Access Key ID)、SK(Secret Access Key)对请求进行签名。
说明:
AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。
SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。
PS:对于AKSK大概知道怎么回事就OK,一般调用接口有如下两种认证方式,您可以任选其中一种进行认证鉴权。
• Token认证:通过Token认证调用请求。
• AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。AK/SK认证安全性更高。
Python实现aksk加密的代码如下(getAksk.py):
#encoding:utf-8
import requests
import hmac
import base64,sys
from hashlib import sha1
ak = "your-ak"
sk = "your-sk"
HOST = "127.0.0.1:5201"
METHOD = "POST"
PATH = "/getToken"
CONTENT_TYPE = "application/json"
data= '{"flag":"test","appId":"001"}'
def sign():
raw1 = "{} {}\n".format(METHOD, PATH)
raw2 = "Host: {}\n".format(HOST)
raw3 = "Content-Type: {}\n".format(CONTENT_TYPE)
raw4 = "\n"
print raw1
print raw2