1. 程式人生 > >MD5接口解密操作_接口簽名校驗

MD5接口解密操作_接口簽名校驗

ces ucc default def ext cau 1.0 action seve

很多HTTP接口在傳參時,需要先對接口的參數進行數據簽名加密
如以下POST接口

http://localhost:8080/pinter/com/userInfo

參數為
{"phoneNum":"123434","optCode":"testfan","timestamp":"1211212","sign":"fdsfdsaafsasfas"}

其中,sign字段是按照特定算法進行加密後的數據
本接口的簽名算法為
sign=Md5(phoneNum+ optCode+ timestamp)

簽名過程中涉及到的C語言函數
字符串拼接
char str[50];
strcat(str,"testfan");
保存當前時間戳:web_save_timestamp_param("tStamp", LAST );

註意 引入 md5.h 文件進行算法解密

 1 Action()
 2 {
 3 //定義 字符串類型
 4     char cat[50];
 5 
 6     
 7     web_reg_find("Search=Body",
 8         "SaveCount=find_cnt",
 9         "Text=code\":\"0\"",
10         LAST);
11 
12 
13 
14     web_save_timestamp_param("tStamp", LAST );
15 
16 //拼接 在一起
17
strcat(cat, lr_eval_string("135{phoneNum}")); 18 strcat(cat, "testfan"); 19 strcat(cat, lr_eval_string("{tStamp}")); 20 21 //CMd5 是調用的 MD5.h 這個文件中的 函數進行md5 解碼的 22 lr_save_string(CMd5(cat), "singMd5"); 23 24 lr_output_message("==============================%s",CMd5(cat));
25 26 27 28 29 web_add_header("Content-type", "application/json"); 30 31 32 lr_start_transaction("singmd5"); 33 34 35 web_custom_request("post", "Method=POST", 36 37 "URL=http://localhost:8080/pinter/com/userInfo", 38 39 "Body={\"phoneNum\":\"135{phoneNum}\",\"optCode\":\"testfan\",\"timestamp\":\"{tStamp}\",\"sign\":\"{singMd5}\"}", 40 41 "TargetFrame=", 42 43 LAST ); 44 45 if(atoi(lr_eval_string("{find_cnt}")) > 0 ){ 46 lr_end_transaction("singmd5", LR_PASS); 47 48 }else{ 49 50 lr_end_transaction("singmd5", LR_FAIL); 51 52 } 53 54 55 56 57 return 0; 58 }

運行日誌如下:

技術分享圖片
 1 Virtual User Script started at : 2019-03-16 19:37:16
 2 Starting action vuser_init.
 3 Web Turbo Replay of LoadRunner 11.0.0 for WINXP; build 8859 (Aug 18 2010 20:14:31)      [MsgId: MMSG-27143]
 4 Run Mode: HTML      [MsgId: MMSG-26000]
 5 Run-Time Settings file: "C:\test_huzhenyu\Script\singn\\default.cfg"      [MsgId: MMSG-27141]
 6 Ending action vuser_init.
 7 Running Vuser...
 8 Starting iteration 1.
 9 Starting action Action.
10 Action.c(7): Registering web_reg_find was successful      [MsgId: MMSG-26390]
11 Action.c(14): Notify: Saving Parameter "tStamp = 1552736236160".
12 Action.c(14): web_save_timestamp_param("web_save_timestamp_param") was successful      [MsgId: MMSG-26392]
13 Action.c(17): Notify: Parameter Substitution: parameter "phoneNum" =  "12662118"
14 Action.c(19): Notify: Parameter Substitution: parameter "tStamp" =  "1552736236160"
15 Action.c(21): Notify: Saving Parameter "singMd5 = b7f1b1f74de61497d65fd0027b8166fc".
16 Action.c(23): ==============================b7f1b1f74de61497d65fd0027b8166fc
17 Action.c(28): Warning -26593: The header being added may cause unpredictable results when applied to all ensuing URLs. It is added anyway      [MsgId: MWAR-26593]
18 Action.c(28): web_add_header("Content-type") highest severity level was "warning"      [MsgId: MMSG-26391]
19 Action.c(31): Notify: Transaction "singmd5" started.
20 Action.c(34): Notify: Parameter Substitution: parameter "phoneNum" =  "12662118"
21 Action.c(34): Notify: Parameter Substitution: parameter "tStamp" =  "1552736236160"
22 Action.c(34): Notify: Parameter Substitution: parameter "singMd5" =  "b7f1b1f74de61497d65fd0027b8166fc"
23 Action.c(34): t=1018ms: 128-byte response headers for "http://localhost:8080/pinter/com/userInfo" (RelFrameId=1, Internal ID=1)
24 Action.c(34):     HTTP/1.1 200 \r\n
25 Action.c(34):     Content-Type: application/json;charset=UTF-8\r\n
26 Action.c(34):     Transfer-Encoding: chunked\r\n
27 Action.c(34):     Date: Sat, 16 Mar 2019 11:37:16 GMT\r\n
28 Action.c(34):     \r\n
29 Action.c(34): t=1061ms: 5-byte chunked response overhead for "http://localhost:8080/pinter/com/userInfo" (RelFrameId=1, Internal ID=1)
30 Action.c(34):     12a\r\n
31 Action.c(34): t=1068ms: 2-byte chunked response overhead for "http://localhost:8080/pinter/com/userInfo" (RelFrameId=1, Internal ID=1)
32 Action.c(34):     \r\n
33 Action.c(34): t=1077ms: 298-byte chunked response body for "http://localhost:8080/pinter/com/userInfo" (RelFrameId=1, Internal ID=1)
34 Action.c(34):     {"code":"0","message":"success","data":{"id":3607,"userName":"鎬ц兘嫻嬭瘯","password":nul
35 Action.c(34):     l,"age":55,"gender":1,"phoneNum":"13512662118","email":"[email protected]","address":"鍖椾
36 Action.c(34):     含寧傛槍騫沖尯縐戞槦瑗胯礬106鍙烽櫌錛堝浗椋庣編鍞愯姳鍥患鍚堟ゼ錛\x893鍙鋒ゼ1111","creat
37 Action.c(34):     eTime":null,"updateTime":null}}
38 Action.c(34): HTML parsing not performed for Content-Type "application/json" ("ParseHtmlContentType" Run-Time Setting is "TEXT"). URL="http://localhost:8080/pinter/com/userInfo"      [MsgId: MMSG-26548]
39 Action.c(34): t=1122ms: 5-byte chunked response overhead for "http://localhost:8080/pinter/com/userInfo" (RelFrameId=1, Internal ID=1)
40 Action.c(34):     0\r\n
41 Action.c(34):     \r\n
42 Action.c(34): Registered web_reg_find successful for "Text=code":"0"" (count=1)      [MsgId: MMSG-26364]
43 Action.c(34): Notify: Saving Parameter "find_cnt = 1".
44 Action.c(34): web_custom_request("post") was successful, 298 body bytes, 128 header bytes, 12 chunking overhead bytes      [MsgId: MMSG-26385]
45 Action.c(44): Notify: Parameter Substitution: parameter "find_cnt" =  "1"
46 Action.c(45): Notify: Transaction "singmd5" ended with "Pass" status (Duration: 0.7485 Wasted Time: 0.4988).
47 Ending action Action.
48 Ending iteration 1.
49 Ending Vuser...
50 Starting action vuser_end.
51 Ending action vuser_end.
52 Vuser Terminated.
View Code

技術分享圖片

技術分享圖片

技術分享圖片

MD5接口解密操作_接口簽名校驗