每天进步一点点,关注我们哦,每天分享测试技术文章
1、什么是加密以及解密?
加密:在网络上传输的原始数据(明文)经过加密后形成(密文)传输,防止被窃取。
解密:将加密还原成原始数据
2、加密方式分类?
对称式加密:对加密和解密使用的是同一个密钥
非对称式加密:非对称式加密需要两个密钥(双钥),分别叫公钥和秘钥,这两把秘钥可以互相加解密,公钥公开的,不需要保密,私钥是保密的。
01加密方式详解
1、加对称密技术:
-
DES加密算法:加密安全性弱,一般应用于旧的系统里面
-
AES加密算法:一般用于前后端分离的接口加密
-
Base64加密算法:编码的方式
2、非对称加密技术(RSA加密算法)
RSA加密算法:最有影响力的加密算法
场景1:通过公钥加密
通过私钥解密
两个用户。A和B,B有双钥,A想要把一个数据报文通过加密的方式传给B。
① B把自己的公钥发送给A(公钥是公开的)
② A使用这个公钥把数据报文进行加密,加密完成传给B(加密后的密文通过网络传给B)
③ B使用自己的秘钥解密得到数据报文
3、如何做接口签名,了解签名的规则:
对所有的请求的参数按key按ASCII码做升序排列。
{"
c
":"3","
b
":"
2
","
a
":"
1
"}
{"
1
":"
1
","
b
":"
2
"
,"
c
":"
3
"}
把参数名和参数值连接成字符串:
a
=
1&b=2&c=3
用申请到的appid和appsecret连接到字符串的头部
appid
:
用户名
appsecret
:
密码
appid
=
admin&appsecret=123&a=1&b=2&c=3
用时间戳连接字符串的尾部
appid
=
admin&appsecret=123&a=1&b=2&c=3×tamp=124124252
然后再把这个字符串安装32位的MD5加密,加密后再转换成大写。
sign
=
E48B34F95AE8001C99CB86A612538C04
10秒有效。
jmeter实现并且分装成函数的话:自定义函数 jave python
4、postman实现并且封装成函数:JavaScript
Pre-request-Script
//url=https://aaa/sss?com=aaa&nu=hhh&phone=jjjjj&show_appid=jj&showapi_timestamp={{time}}&showapi_sign={{sign}}
var
moment
=
require
('
moment
')
//获取时间戳
c
o
nsole
.
log
(
request.url
);
//获取请求信息
var
url
=
request
.
url
;
var
param
=
url
.
split
("
?
")[1]
//取到url的?后面的值,按照?分割,取前面就是0
if
(
param != null
)
{
{
var
time
=
moment
()
.format
("
YYYYMMDDHHmmss
")/
/取当天时间按照YYYYMMDDHHmmss形式显示
pm
.
environment
.set
("
time
",
time
);
//postman 自带的 全局变量
param
+
="
&showapi_timestamp=
"
+time
;
param
+
="
&showapi_sign=122344556
";
var
param
=
param
.
split
("
&
") ;
//分割变成一个list
param
.sort()
;//按照要求的方式进行排序a-z
var
keys
=
new
Array
(
param.length
);
var
values
=
new
Array
(
param.length
);
for
(
var i=0;i<param.length;i++
)
{
keys
[
i
]=
param
[
i
].
split
("
=
")[
0
]
//取=前面的值
values
[
i
]=
param
[
i
].
split
("
=
")[
1
]
//取=后面的值
}
var
str
=[]
for
(
var
p=0;p<keys.length;p++
)
//如果发现keys需要sign,就不参与验签
{
if
(
key
s[p]==
"
showapi_sign
"||
values[p]==
"
{{time}}
")
{
continue
;
}
str
.
push
(
keys[p]+value[p]
);
}
var
sign
=
str
.
join
("")
sign = sign
+"
sssss
";
//加密钥
pm.
environment
.set
(
"sign",CryptoJs.MD5(sign).toString()
);
//postman 自带的全局变量
}
**最后:下方这份完整的【软件测试】视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】**