国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim WeChat-Applet WeChat-Entwicklung Einführung in die WeChat-Entwicklung (6) Benutzerdatenentschlüsselung

Einführung in die WeChat-Entwicklung (6) Benutzerdatenentschlüsselung

May 24, 2017 am 09:38 AM

Ich sehe oft, dass einige Freunde in der Gruppe nach dem Entschlüsselungsprozess von Miniprogramm-Benutzerdaten fragen, daher habe ich vor, ein Tutorial zum Entschlüsseln sensibler Daten von Miniprogramm-Benutzern zu schreiben.

Der Verschlüsselungsprozess ist am abgeschlossen Der WeChat-Server und der Entschlüsselungsprozess sind abgeschlossen. Das Applet und sein eigener Server sind abgeschlossen, d >

Base64-Kodierung und -Dekodierung
{
    "openId": "OPENID",
    "nickName": "NICKNAME",
    "gender": GENDER,
    "city": "CITY",
    "province": "PROVINCE",
    "country": "COUNTRY",
    "avatarUrl": "AVATARURL",
    "unionId": "UNIONID",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}

    AES-Algorithmus, Füllmodus, Offset-Vektor
  1. Sitzung

    _

    Schlüssel
  2. Sitzungsschlüssel und Speichern und Abrufen
  3. Die oben genannten 3 Punkte sind sehr wichtig für das Verst?ndnis des Entschlüsselungsprozesses .

  4. Den offiziellen Dokumenten zufolge habe ich den allgemeinen Entschlüsselungsprozess wie folgt geregelt:

Der Applet-Client ruft wx auf. login, Der Rückruf enth?lt

jsEinführung in die WeChat-Entwicklung (6) Benutzerdatenentschlüsselung_code.

  1. Senden Sie dann js_code an Server A (Entwicklerserver Server A initiiert eine Anfrage an den WeChat-Server mit den Parametern js_code, appId, Secretkey und grant_type im Austausch für die openid und session_key (). Sitzungsschlüssel).

  2. Nachdem Server A den session_key erhalten hat, generiert er eine Zufallszahl, die wir 3rd_session nennen, mit 3rdSessionId als Schlüssel und session_key + openid als Wert
  3. Cache

    bis

    redis
  4. oder
  5. memcached

    ; Da das WeChat-Team nicht empfiehlt, den session_key direkt im Netzwerk zu übertragen, muss der Entwickler einen eindeutigen Schlüssel generieren, der dem session_key zugeordnet werden kann. Seine Funktion ist: Geben Sie die 3rdSessionId an den Client zurück und behalten Sie den Anmeldestatus des Miniprogramms bei.

    1. Finden Sie den Sitzungsschlüssel und die OpenID des Benutzers über 3rdSessionId.
    2. Nachdem der Client die 3rdSessionId erhalten hat, wird sie im Speicher zwischengespeichert

    Benutzersensible Daten k?nnen über wx abgerufen werden. getUserIinfo.
  6. Der Client sendet die verschlüsselten Daten, die 3rdSessionId und den Offset zusammen an Server A
  7. Server A erh?lt den Sitzungsschlüssel aus dem Cache basierend auf der 3rdSessionId
  8. Verwenden Sie AES, um die verschlüsselten Daten auf Server A zu entschlüsseln, um die Entschlüsselung sensibler Benutzerdaten zu erreichen
  9. Konzentrieren Sie sich auf die drei Links 6, 7 und 8 .
  10. AES-Entschlüsselung drei Parameter:

Chiffretext verschlüsseltDaten


    Schlüssel aesKey
  • Offset-Vektor iv
  • Serverseitiger Entschlüsselungsprozess:
  • Der Chiffretext und der Offset-Vektor werden vom Client an den Server gesendet. Die beiden Parameter führen Base64_decode durch
Dekodierung

Vorgang auf der Serverseite.

  1. Rufen Sie den Sitzungsschlüssel aus dem Cache basierend auf der 3rdSessionId ab und dekodieren Sie den Sitzungsschlüssel mit Base64, um aesKey und den aes-Schlüssel zu erhalten.

  2. Rufen Sie die AES-Entschlüsselungsmethode auf, der Algorithmus ist AES-128-CBC und die Daten werden mit PKCS#7 gefüllt.
  3. Im Folgenden wird der Entschlüsselungsprozess anhand eines Miniprogrammbeispiels erl?utert:
  4. 1 Melden Sie sich mit WeChat an und erhalten Sie Benutzerinformationen

2 . Code zum Austauschen für 3rdSessionId verwenden

3. Entschlüsselungsanforderung einleiten

var that = this;wx.login({success: function (res) {
    //微信js_code
    that.setData({wxcode: res.code});
    //獲取用戶信息
    wx.getUserInfo({
        success: function (res) {
            //獲取用戶敏感數(shù)據(jù)密文和偏移向量
            that.setData({encryptedData: res.encryptedData})            that.setData({iv: res.iv})        }
    })}})

4 . AES-Entschlüsselungskerncode

var httpclient = require('../../utils/httpclient.js')
VAR that = this//httpclient.req(url, data, method, success, fail)httpclient.req(  'http://localhost:8090/wxappservice/api/v1/wx/getSession',
  {
      apiName: 'WX_CODE',
      code: this.data.wxcode
  },
  'GET',
  function(result){
    var thirdSessionId = result.data.data.sessionId;
    that.setData({thirdSessionId: thirdSessionId})    //將thirdSessionId放入小程序緩存
    wx.setStorageSync('thirdSessionId', thirdSessionId)  },
  function(result){
    console.log(result)  });

Der Endeffekt ist wie folgt:

//httpclient.req(url, data, method, success, fail)httpclient.req('http://localhost:8090/wxappservice/api/v1/wx/decodeUserInfo',
  {
    apiName: 'WX_DECODE_USERINFO',
    encryptedData: this.data.encryptedData,
    iv: this.data.iv,
    sessionId: wx.getStorageSync('thirdSessionId')  },
  'GET',
  function(result){
  //解密后的數(shù)據(jù)
    console.log(result.data)  },
  function(result){
    console.log(result)  });

Wenn Ihr Miniprogramm nicht an die offene WeChat-Plattform gebunden ist, sind dies die entschlüsselten Daten nicht den Unionid-Parameter enthalten
/** * 解密用戶敏感數(shù)據(jù) * @param encryptedData 明文 * @param iv            加密算法的初始向量 * @param sessionId     會(huì)話ID * @return */@Api(name = ApiConstant.WX_DECODE_USERINFO)@RequestMapping(value = "/api/v1/wx/decodeUserInfo", method = RequestMethod.GET, produces = "application/json")public Map<String,Object> decodeUserInfo(@RequestParam(required = true,value = "encryptedData")String encryptedData,        @RequestParam(required = true,value = "iv")String iv,        @RequestParam(required = true,value = "sessionId")String sessionId){    //從緩存中獲取session_key
    Object wxSessionObj = redisUtil.get(sessionId);    if(null == wxSessionObj){        return rtnParam(40008, null);
    }
    String wxSessionStr = (String)wxSessionObj;
    String sessionKey = wxSessionStr.split("#")[0];    try {
        AES aes = new AES();        byte[] resultByte = aes.decrypt(Base64.decodeBase64(encryptedData), Base64.decodeBase64(sessionKey), Base64.decodeBase64(iv));        if(null != resultByte && resultByte.length > 0){
            String userInfo = new String(resultByte, "UTF-8");            return rtnParam(0, userInfo);
        }
    } catch (InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }    return rtnParam(50021, null);
}
Bindung des Miniprogramms WeChat Open Platform Connection

Zusammenfassung
public byte[] decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException {    initialize();    try {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
        Key sKeySpec = new SecretKeySpec(keyByte, "AES");

        cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化 
        byte[] result = cipher.doFinal(content);        return result;
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();  
    } catch (NoSuchPaddingException e) {
        e.printStackTrace();  
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
        e.printStackTrace();
    } catch (BadPaddingException e) {
        e.printStackTrace();
    } catch (NoSuchProviderException e) {        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Von den entschlüsselten Daten sind die einzigen sensiblen Daten appid; ich pers?nlich bin der Meinung, dass openid nicht sensibel ist Daten, und jeder Benutzer generiert eine für jedes offizielle Konto
Sicher Einführung in die WeChat-Entwicklung (6) Benutzerdatenentschlüsselung openid ist nur im Umfang von appid verfügbar. Es sei denn, Ihre App-ID ist ebenfalls durchgesickert.

Damit die App-ID aus den entschlüsselten Daten abgerufen werden kann. Was ist der Zweck des WeChat Mini-Programmteams? Wie ich bereits sagte, ist openid nichts ohne appid. Zusammen werden openid und appid verwendet, um Miniprogrammentwicklern die Unterscheidung und Isolierung von Benutzern zwischen verschiedenen Miniprogrammanwendungen zu erleichtern und gleichzeitig das WeChat-Benutzersystem mit dem dritten zu kombinieren -Parteien-Gesch?ftssystem.

Ich denke also, dass der Hauptzweck der Entschlüsselung sensibler Daten nicht darin besteht, sie zu entschlüsseln und an den Client zurückzusenden, sondern darin, WeChat-Benutzerinformationen serverseitig in ihr eigenes Gesch?ft zu integrieren.

[Verwandte Empfehlungen]

1. Quellcode der WeChat-Plattform herunterladen

2 ??>

3.

WeChat Lala Takeaway 2.2.4 entschlüsselt die Open-Source-Version des WeChat Rubik's Cube-Quellcodes

Das obige ist der detaillierte Inhalt vonEinführung in die WeChat-Entwicklung (6) Benutzerdatenentschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Java-Entwicklung: So implementieren Sie die Datenverschlüsselung und -entschlüsselung Java-Entwicklung: So implementieren Sie die Datenverschlüsselung und -entschlüsselung Sep 20, 2023 am 08:46 AM

Java-Entwicklung: Für die Implementierung der Datenverschlüsselung und -entschlüsselung sind spezifische Codebeispiele erforderlich. Einführung: Im Kontext des modernen Informationszeitalters ist Datensicherheit immer wichtiger geworden. Für Entwickler ist der Schutz der Sicherheit von Benutzerdaten eine wesentliche F?higkeit. Die Datenverschlüsselung und -entschlüsselung ist eines der wichtigsten Mittel zur Datensicherheit. In diesem Artikel wird erl?utert, wie die Java-Sprache zum Implementieren der Datenverschlüsselung und -entschlüsselung verwendet wird, und es werden spezifische Codebeispiele aufgeführt. 1. Einführung in den Datenverschlüsselungsalgorithmus Datenverschlüsselung bezieht sich auf die Verarbeitung von Originaldaten durch einen bestimmten Algorithmus, sodass sie ohne verarbeitet werden k?nnen

So verschlüsseln und entschlüsseln Sie Daten in Python So verschlüsseln und entschlüsseln Sie Daten in Python Oct 18, 2023 am 10:15 AM

Für die Ver- und Entschlüsselung von Daten in Python sind spezifische Codebeispiele erforderlich. Datenverschlüsselung und -entschlüsselung sind sehr wichtige Konzepte im Bereich der Informationssicherheit. In praktischen Anwendungen müssen wir h?ufig sensible Daten verschlüsseln, um unbefugten Zugriff und Informationsverlust zu verhindern. Python ist eine leistungsstarke Programmiersprache, die eine Fülle von Bibliotheken und Funktionen zur Implementierung von Datenverschlüsselungs- und -entschlüsselungsvorg?ngen bereitstellt. In diesem Artikel werden einige h?ufig verwendete Verschlüsselungsalgorithmen und spezifische Codebeispiele für die Implementierung der Datenverschlüsselung und -entschlüsselung in Python vorgestellt. 1. MD5

So verwenden Sie Laravel zur Implementierung von Datenverschlüsselungs- und -entschlüsselungsfunktionen So verwenden Sie Laravel zur Implementierung von Datenverschlüsselungs- und -entschlüsselungsfunktionen Nov 03, 2023 pm 04:19 PM

überblick über die Verwendung von Laravel zur Implementierung von Datenverschlüsselungs- und -entschlüsselungsfunktionen: In modernen Internetanwendungen ist es sehr wichtig, die Sicherheit der Benutzerdaten zu schützen. Eine der wichtigen Sicherheitsma?nahmen ist die verschlüsselte Speicherung sensibler Daten. Laravel bietet als beliebtes PHP-Framework Unterstützung für verschiedene Verschlüsselungs- und Entschlüsselungsfunktionen. In diesem Artikel wird erl?utert, wie Sie die Verschlüsselungsbibliothek von Laravel zum Ver- und Entschlüsseln von Daten verwenden. Schritt 1: Laravel installieren Stellen Sie zun?chst sicher, dass Larav lokal oder auf dem Server installiert ist

PHP WeChat-Entwicklung: So implementieren Sie die Nachrichtenverschlüsselung und -entschlüsselung PHP WeChat-Entwicklung: So implementieren Sie die Nachrichtenverschlüsselung und -entschlüsselung May 13, 2023 am 11:40 AM

PHP ist eine Open-Source-Skriptsprache, die in der Webentwicklung und serverseitigen Programmierung, insbesondere in der WeChat-Entwicklung, weit verbreitet ist. Heutzutage beginnen immer mehr Unternehmen und Entwickler, PHP für die WeChat-Entwicklung zu verwenden, da es sich zu einer wirklich leicht zu erlernenden und benutzerfreundlichen Entwicklungssprache entwickelt hat. Bei der WeChat-Entwicklung sind die Nachrichtenverschlüsselung und -entschlüsselung ein sehr wichtiges Thema, da sie die Datensicherheit betreffen. Bei Nachrichten ohne Verschlüsselungs- und Entschlüsselungsmethoden k?nnen Hacker leicht an die Daten gelangen, was eine Bedrohung für Benutzer darstellt.

Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Jul 16, 2023 pm 04:02 PM

Methoden und Techniken zur Datenverschlüsselung und -entschlüsselung mithilfe von PHP-Arrays Zusammenfassung: Datenverschlüsselung spielt eine wichtige Rolle in der Informationssicherheit. In diesem Artikel werden Methoden und Techniken zur Verwendung von PHP-Arrays zur Implementierung der Datenverschlüsselung und -entschlüsselung vorgestellt, um die Sicherheit vertraulicher Informationen zu schützen. Einleitung In der modernen Gesellschaft haben Fragen der Netzwerksicherheit zunehmend Aufmerksamkeit erregt. Um die Sicherheit sensibler Informationen zu schützen, ist die Datenverschlüsselung eine g?ngige Methode. PHP-Array ist eine leistungsstarke und flexible Datenstruktur, die zum Speichern und Bearbeiten von Daten verwendet werden kann. Durch die Speicherung sensibler Daten im PHP-Array

Verwenden Sie das Gin-Framework, um Datenverschlüsselungs- und -entschlüsselungsfunktionen zu implementieren Verwenden Sie das Gin-Framework, um Datenverschlüsselungs- und -entschlüsselungsfunktionen zu implementieren Jun 23, 2023 am 08:12 AM

Im modernen Internetbereich ist Datensicherheit schon immer ein wichtiges Thema. Bei der übermittlung, Speicherung und Verarbeitung von Daten müssen wir verschiedene technische Mittel einsetzen, um die Datensicherheit zu gew?hrleisten. Eines der wichtigsten technischen Mittel ist die Datenverschlüsselung. Gin ist ein Web-Framework, das auf der Go-Sprache basiert. Seine Einfachheit, Benutzerfreundlichkeit, Effizienz und Stabilit?t wurden von vielen Entwicklern gesch?tzt. In diesem Artikel wird erl?utert, wie Sie mit dem Gin-Framework Datenverschlüsselungs- und -entschlüsselungsfunktionen implementieren. Zun?chst müssen wir einige Grundkenntnisse über Verschlüsselungsalgorithmen verstehen.

PHP WeChat-Entwicklung: So implementieren Sie die Abstimmungsfunktion PHP WeChat-Entwicklung: So implementieren Sie die Abstimmungsfunktion May 14, 2023 am 11:21 AM

Bei der Entwicklung ?ffentlicher WeChat-Konten wird h?ufig die Abstimmungsfunktion verwendet. Die Voting-Funktion ist eine tolle M?glichkeit für Nutzer, sich schnell an Interaktionen zu beteiligen und ist darüber hinaus ein wichtiges Tool für die Durchführung von Veranstaltungen und Meinungsumfragen. In diesem Artikel erfahren Sie, wie Sie PHP zur Implementierung der WeChat-Abstimmungsfunktion verwenden. Holen Sie sich die Autorisierung des offiziellen WeChat-Kontos. Zuerst müssen Sie die Autorisierung des offiziellen WeChat-Kontos einholen. Auf der ?ffentlichen WeChat-Plattform müssen Sie die API-Adresse des ?ffentlichen WeChat-Kontos, des offiziellen Kontos und des dem ?ffentlichen Konto entsprechenden Tokens konfigurieren. Bei unserer Entwicklung mit der PHP-Sprache müssen wir den von WeChat offiziell bereitgestellten PH verwenden

RPC-Dienst basierend auf ThinkPHP6 und Swoole zur Implementierung der Datenverschlüsselung und -entschlüsselung RPC-Dienst basierend auf ThinkPHP6 und Swoole zur Implementierung der Datenverschlüsselung und -entschlüsselung Oct 12, 2023 pm 02:57 PM

Implementierung der Datenverschlüsselung und -entschlüsselung mithilfe von RPC-Diensten auf Basis von ThinkPHP6 und Swoole Da Netzwerksicherheitsprobleme immer wichtiger werden, wird die Notwendigkeit der Datenverschlüsselung und -entschlüsselung immer wichtiger. In Webanwendungen kann die Kommunikation zwischen verschiedenen Servern durch die RPC-Technologie (Remote Procedure Call) erreicht werden, und die Datenverschlüsselung und -entschlüsselung kann die Sicherheit der Daten w?hrend des Kommunikationsprozesses gew?hrleisten. In diesem Artikel wird erl?utert, wie Sie einen RPC-Dienst basierend auf dem ThinkPHP6- und Swoole-Framework implementieren und Datenverschlüsselung und -entschlüsselung hinzufügen.

See all articles