Postman-Datenverschlüsselung und -entschlüsselung zur Implementierung der Simulationsanforderung der APP-Anmeldeschnittstelle

Postman-Datenverschlüsselung und -entschlüsselung zur Implementierung der Simulationsanforderung der APP-Anmeldeschnittstelle

Hauptsächlich verwendete Postman-Funktionen

  • Umgebungsvariablen: Erstellen Sie einfach eine neue und alle Vorgänge werden im Code behandelt.
  • Protokollansicht: Menüposition: Ansicht → Postman-Konsole anzeigen, einfach diese Fensteransicht anzeigen
  • Während der Anfrage ausgeführtes Skript: Skript-Tag vor der Anfrage, verwendet die Sprache JavaScript, normalerweise als Verschlüsselung.
  • Akzeptiert das bei der Rückgabe auszuführende Skript: Registerkarte „Tests“, da die Verarbeitung des Rückgabeparameters normalerweise die Entschlüsselung ist.

Einfache Schnittstelle

Datenverschlüsselung und -entschlüsselung

Die Schnittstelle erfordert, dass die Parameterdaten verschlüsselt und im JSON-Format gesendet werden.

Verschiedene Parametereinstellungen

  • Füllen Sie die Klartextparameter aus:

Die Parameter hier sind die grundlegenden Daten, die später vom Skript verwendet werden. Sie können auch den Daten ähneln, die in die APP-Anmeldeoberfläche eingegeben werden müssen.

Schnittstellenparameter

  • Füllen Sie die Anforderungsheaderparameter aus:

Die Anforderungsheaderdaten sind hier einige festgelegte Regelparameter, auf die sich die Systemschnittstelle geeinigt hat.

Anforderungsheaderparameter

Die tatsächlich gesendeten Daten:

Ja, es gibt nur einen Parameter. Nachdem das Skript den Parameter verarbeitet und verschlüsselt hat, wird daraus eine lange Zeichenfolge ╮(╯_╰)╭

Körperdaten.

Pro-Request-Skript

Um das Skript abzuarbeiten, schauen Sie sich einfach den Code an.

Einige häufig verwendete Kapselungsklassen von Skripten werden von Postman gekapselt, wie zum Beispiel:

  • Umgebungsvariable: pm.environment
  • Toolkit zur Datenverschlüsselung: CryptoJS
  • Toolkit für mathematische Funktionen: Math

[Neben dem Code-Schreibfeld gibt es eine von Postman bereitgestellte allgemeine Operationscode-Generierung, die sehr nützlich ist]

Spezifischer Code:

//Umgebungsvariablenparameter für andere Anfragen festlegen pm.environment.set("lkm-sys-id",pm.request.headers.get("lkm-sys-id"));
pm.environment.set("lkm-app-id",pm.request.headers.get("lkm-app-id"));
pm.environment.set("lkm-organ-id",pm.request.headers.get("lkm-organ-id"));
pm.environment.set("lkm-app-ver",pm.request.headers.get("lkm-app-ver"));

// JSON-Parameter für Datensignatur const paramsString = request.url.split('?')[1]; 
const eachParamArray = paramsString.split('&'); 
lass Parameter = {}; 
eachParamArray.fürEach((param) => { 
    const key = param.split('=')[0]; 
    konstanter Wert = param.split('=')[1]; 
    Object.assign(params, {[Schlüssel]: Wert}); 
}); 
konsole.log(Parameter);

//Datenverarbeitung var requestParams = params;
Konsole.log(Anforderungsparameter);

// Durch die Schnittstelle definierte Datensignaturverarbeitung var timestamp = Math.round(new Date());
pm.environment.set("Zeitstempel",Zeitstempel);
var shuijishu = "XO337hNxWyNsOlDw";
pm.environment.set("shuijishu",shuijishu);
// Datensignatur, vereinbart durch die Systemschnittstelle var lkmSign = pm.request.headers.get("lkm-sys-id")
                + pm.request.headers.get("lkm-app-id")
                + "1122334455667788"
                + Zeitstempel
                + shuijishu
                + ""
                ;
pm.environment.set("lkmSign",CryptoJS.MD5(lkmSign).toString().toUpperCase());
// =================== Die Verarbeitung der Datensignatur endet======================================

// ======================= Verschlüsselungs- und Entschlüsselungsdaten==========================================
/// AES-Datenverarbeitung var aesData = dealWithAesData(requestParams);
pm.environment.set("data", aesData); // Dies sind die Daten, die im Screenshot oben gesendet werden müssen./// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Häufig verwendete AES-Verschlüsselungs- und Entschlüsselungsmethoden↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ///
// aesData-Datenverarbeitung (Inhaltswörterbuch)
Funktion dealWithAesData(Inhalt) {
    console.log('aesData-Klartext: ' + JSON.stringify(Inhalt));
    const key = CryptoJS.enc.Utf8.parse("****************");
    const iv = CryptoJS.enc.Utf8.parse("0000000000000000");
    const verschlüsselt = CryptoJS.AES.encrypt(JSON.stringify(Inhalt), Schlüssel, { iv: iv, Modus: CryptoJS.mode.CBC, Polsterung: CryptoJS.pad.Pkcs7 }); //CBC
    returniere encrypted.toString();
}

Antwortverarbeitungsskript [Tests]

  • Die Antwortdaten werden verarbeitet, entschlüsselt und angezeigt.
  • Hinweis: Postman stellt verschiedene Assertionsoperationen zur Verfügung, mit denen die Testergebnisse gut angezeigt werden können.

Spezifischer Code:

// Datenverarbeitung zurückgeben var jsonData = JSON.parse(responseBody);
var responseData = JSON.parse(decryptResponseData(jsonData.data)); // Datenentschlüsselung let success = responseData['success'];
var responseResult = responseData["Daten"];

//Datentoken-Datensatz, der von nachfolgenden Schnittstellen verwendet wird try {
    let token = Antwortresult["Token"];
    pm.environment.set("Token", "Träger "+Token);
    konsole.log("token: " + token);
} fangen (Fehler) {
    Tests['Erwarte, dass die Antwortdaten ein gültiges Token sind'] = false;
    Tests [`Antwortdaten: ${responseResult}`] = true;
    Konsole.Fehler(Fehler);
}

//Datenprotokoll drucken console.log("jsonData: Das folgende Objekt sind die Antwortdaten")
Konsole.log(jsonData);
console.log("responseData: Das folgende Objekt ist die erste Ebene der analysierten Daten")
console.log(Antwortdaten);
console.log("responseResult: Das folgende Objekt ist die zweite Ebene der analysierten Daten")
console.log(Antwortergebnis);

//Einstellungen der Umgebungsvariablen, die nach der Anmeldung von anderen Schnittstellen verwendet werden.
console.log(AntwortResult.AgentId);
pm.environment.set("agentId",responseResult.agentId);
pm.environment.set("agentCode",responseResult.agentCode);
pm.environment.set("agentName",responseResult.agentName);
// pm.environment.set("token",responseResult.token);

// Assertion festlegen Postman stellt eine gute allgemeine Assertion-Generierung bereit, Sie können Tests ["Business return code=200, success!"] = responseData.code === 200; ausprobieren.

/// Entschlüsseln Sie die zurückgegebenen Daten function decryptResponseData(content) {
    const key = CryptoJS.enc.Utf8.parse("*****************");
    const iv = CryptoJS.enc.Utf8.parse("0000000000000000");
    const decrypt = CryptoJS.AES.decrypt(Inhalt, Schlüssel, { iv: iv, Modus: CryptoJS.mode.CBC, Auffüllung: CryptoJS.pad.Pkcs7 });
    const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    returniere entschlüsseltenStr.toString();
}

Das Ergebnis sieht aus wie

Endgültige Daten

Die Anforderung zur Simulation der verschlüsselten Schnittstelle sieht ungefähr so ​​aus. Was andere Vorgänge betrifft, müssen Sie diese später lernen. Weitere Informationen zu Anforderungen für die Postman-Login-APP-Schnittstelle finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So legen Sie die Parameterliste beim Anfordern von POST in Postman fest
  • Beispiel für das Senden einer POST-Anfrage im JSON-Format mit POSTMAN
  • Installation und Verwendung von Postman (Simulation von Get- und Post-Anfragen)
  • Postman simuliert das Senden einer Anforderungsmethode mit einem Token
  • Postman-Test-Post-Anforderungsparameter ist JSON-Typ, Beispielerklärung
  • PostMan-Post-Request-Methode zum Senden von JSON-Daten
  • Postman simuliert vier Anforderungstexte einer Post-Anforderung

<<:  Detaillierte Erläuterung zur Konfiguration des Beispielcodes für den Nginx-Webserver

>>:  Detailliertes Tutorial zum Kompilieren und Installieren von mysql8.0.29 in der LNMP-Umgebung von CentOS8

Artikel empfehlen

svg+css oder js zum Erstellen eines Tick-Animationseffekts

Mein Chef hatte mich gebeten, ein Programm zu ers...

Informationen zu UDP in Linux

Inhaltsverzeichnis 1. Einführung in UDP und Linux...

CSS-Beispielcode zur Implementierung von Schiebetüren

Durch die sogenannte Sliding Door-Technologie läs...

Linux nutzt duale Netzwerkkartenbindung und Schraubendreherschnittstelle

Was ist eine Bindung? NIC-Bond ist eine Technolog...

Detailliertes Tutorial zur Installation von MariaDB auf CentOS 8

Das Datenbankverwaltungssystem MariaDB ist ein Zw...

Detaillierte Erklärung zur Installation der PHP-Curl-Erweiterung unter Linux

Dieser Artikel beschreibt, wie man die PHP-Curl-E...

Detaillierte Erläuterung des Beispiels der Caching-Methode von Vue

Kürzlich wurde die neue Anforderung „Front-End-Ca...

Eine gängige Technik zur Implementierung von Dreiecken mit CSS (mehrere Methoden)

In manchen Vorstellungsgesprächen werden häufig F...

30 Minuten, um Ihnen ein umfassendes Verständnis von React Hooks zu vermitteln

Inhaltsverzeichnis Überblick 1. useState 1.1 Drei...