常见的加密算法:
1、摘要算法:对明文编码生成信息摘要,以防止篡改,客户端和服务端采用相同的摘要算法就可以针对同一段明文获取一致的密文,没有密钥。
MD5(一个原始数据MD5值是唯一的,同一个原始数据不会有多个MD5值)使用哈希算法,无论多长的输入,输出都为128bits的串
SHA
2、对称加密:共享密钥加密算法,在加解密中密钥只有一个,发送和接收双方事先都知道加密的密钥,然后都使用这个密钥对数据加密和解密。
加密:(原始数据)明文+密钥 =加密处理后—>密文
解密:密文+相同的密钥=相同算法的逆算法->明文
AES
DES
3、非对称加密:两个密钥(公开密钥publickey、私有密钥privatekey)
public key加密 private key解密
Private key加密 public key解密
RSA
ECC
根据上述加密算法,测试人员在测试不同的加解密接口可以采用下述方法处理加密接口:
摘要算法(MD5,SHA-1):造接口数据前调用MD5,SHA-1进行编码,服务端对比编码后的字符串是否一致。
对称加密算法(AES,DES ):造接口数据前从开发获取对称公钥,基于对称公钥可以加密请求数据,解密响应报文。
非对称加密算法(RSA):造接口数据前从开发获取公钥私钥去加密解密接口数据
加解密接口处理流程:
接口 接口数据加密—>服务器获取加密接口数据—>解密—>验证数据是否合法有效—>后续逻辑处理
1、前/后置处理器:请求发出前有前置处理器,请求发出之后,得到了相应结果后有后置处理器
2、beanshell:在beanshell中写Java代码,然后利用jmeter执行这些代码
3、beanshell内置变量:vars(对数据进行存储和读取,存储格式key.value)
Vars.get(string key):从集合里取值
Vars.put(string key.string value):把变量传到集合里进行保存
加解密测试流程:
1、从开发要加密jar包
2、在jmeter中引用jar包:两种方法
(在测试计划中直接引用)
(把jar包放到Jmeter文件下的libext下)
3、添加加密请求
4、在登录请求下,添加前置处理器(beanshell预处理),完成对密码的加密(原因:登录要用的是加密之后的密码,所以要在发请求之前将密码加密好)
代码:
5、登录请求调用已经加密好的字符串
6、添加监听器->查看结果树,对返回数据进行确认