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

Beispiel für das Herunterladen von Dateien mit vue+django

Inhaltsverzeichnis 1. Übersicht 2. Django-Projekt...

Stellen Sie IE8 so ein, dass Code im IE7-Stil verwendet wird

<meta http-equiv="x-ua-kompatibel" co...

Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion

WeChat-Applet: Einfacher Rechner. Zu Ihrer Inform...

Detaillierte Erläuterung der praktischen Anwendung des HTML-Tabellenlayouts

Wann wird die Tabelle eingesetzt? Tabellen werden...

Zusammenfassung der Methode von React zum Erstellen von Komponenten

Inhaltsverzeichnis 1. Komponenten mit Funktionen ...

So teilen und führen Sie mehrere Werte in einem einzigen Feld in MySQL zusammen

Mehrere Werte kombiniert anzeigen Nun haben wir d...

MySQL 8.0.13 Installations- und Konfigurations-Tutorial unter CentOS7.3

1. Grundlegende Umgebung 1. Betriebssystem: CentO...

So implementieren Sie Datenpersistenz mit dem Vuex-Drittanbieterpaket

Zweck: Ermöglichen Sie die gleichzeitige lokale S...

Detaillierte Schritte zur vollständigen Deinstallation von MySQL 5.7

Dieser Artikel fasst hauptsächlich verschiedene P...