MD5接口解密操作_接口簽名校驗
阿新 • • 發佈:2019-03-16
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 //拼接 在一起 17strcat(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接口解密操作_接口簽名校驗