PageSourceSearch

https://www.echoapi.com/wiki/assets/js/85cd4187.88cdeb9f.js

js echoapi.com collected 2026-09-29 00:07:14 UTC 5,054 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[8537],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=a.createContext({}),l=function(e){var t=a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),y=n,g=p["".concat(c,".").concat(y)]||p[y]||m[y]||o;return r?a.createElement(g,s(s({ref:t},u),{},{components:r})):a.createElement(g,s({ref:t},u))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,s=new Array(o);s[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:n,s[1]=i;for(var l=2;l<o;l++)s[l]=r[l];return a.createElement.apply(null,s)}return a.createElement.apply(null,r)}y.displayName="MDXCreateElement"},4225:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=r(8168),n=(r(6540),r(5680));const o={slug:"/autosignature"},s=void 0,i={unversionedId:"Best Practices/Automatically Calculate Parameter Signature for Interface Requests",id:"Best Practices/Automatically Calculate Parameter Signature for Interface Requests",title:"Automatically Calculate Parameter Signature for Interface Requests",description:"Usage Scenario",source:"@site/docs/19-Best Practices/08-Automatically Calculate Parameter Signature for Interface Requests.md",sourceDirName:"19-Best Practices",slug:"/autosignature",permalink:"/wiki/docs/autosignature",draft:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{slug:"/autosignature"},sidebar:"docs",previous:{title:"Use CryptoJS for MD5 and AES Encryption and Decryption of Request Parameters",permalink:"/wiki/docs/crypto"},next:{title:"Performance Testing",permalink:"/wiki/docs/performancetesting"}},c={},l=[{value:"Usage Scenario",id:"usage-scenario",level:3},{value:"Script Syntax",id:"script-syntax",level:3}],u={toc:l},p="wrapper";
1function m(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,a.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"usage-scenario"},"Usage Scenario"),(0,n.yg)("p",null,"Some interfaces require parameter signature verification to ensure the legality of the interface request.\nFor example, the signature rule is as follows: concatenate the request parameters param1, param2 in the order of appid + param1 + param2 + salt + secretKey to get string1. Step two: perform md5 on string1 to get a 32-bit lowercase sign."),(0,n.yg)("h3",{id:"script-syntax"},"Script Syntax"),(0,n.yg)("p",null,"Use pre-execution scripts to achieve this requirement. The demo is as follows:"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-jsx"},'// Get query parameters param1, param2\nvar queryParams = request.request_querys;\nconsole.log(queryParams);\nvar param1 = queryParams[\'param1\'];\nvar param2 = queryParams[\'param2\'];\n\n// Get the APPID and SECRET_KEY set as environment variables in advance\nvar appid = pm.variables.get("APPID");\nvar secretKey = pm.variables.get("SECRET_KEY");\n\n// Define a random number between 11111 and 65536\nvar salt = parseInt(Math.random() * (54425) + 11111, 10);\n\n// Convert the random number to a string\nsalt = salt.toString();\nconsole.log(salt);\n\n// Define a string composed of appid, the string to be translated, random number, and secret key\nvar str = appid + param1 + param2 + salt + secretKey;\nconsole.log(str);\n\n// Perform md5 encryption on str to generate sign\nvar sign = CryptoJS.MD5(str).toString();\n\npm.setRequestQuery("salt", salt); // Set salt\npm.setRequestQuery("sign", sign); // Set signature\n')))}m.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.