Maison >Applet WeChat >Développement WeChat >Développement de la plateforme publique WeChat : cryptage des messages

Développement de la plateforme publique WeChat : cryptage des messages

高洛峰
高洛峰original
2017-02-27 13:36:583059parcourir

Il n'y a pas si longtemps, le compte d'entreprise de WeChat utilisait le cryptage obligatoire des messages, puis le compte officiel a également ajouté des options facultatives de cryptage des messages. Actuellement, les méthodes de cryptage des comptes d'entreprise et des comptes officiels sont les mêmes (les formats seront légèrement différents).

Paramètres de cryptage

Entrez dans le « Centre des développeurs » dans le backend du compte officiel, et nous pouvons voir les paramètres d'amarrage d'URL :

Développement de la plateforme publique WeChat : cryptage des messages

Cliquez sur [Modifier les paramètres], vous pouvez accéder à la page de modification :

Développement de la plateforme publique WeChat : cryptage des messages

Il existe trois méthodes de cryptage :

Le mode texte clair, qui est le format de message original

Le mode de compatibilité, le texte en clair et le texte chiffré coexisteront. Il n'est pas recommandé d'utiliser des produits officiellement publiés (car ils contiennent toujours du texte en clair et ne peuvent pas obtenir l'effet de cryptage)

Mode de sécurité, en ce mode, le message sera Il sera crypté et le serveur du développeur pourra le déchiffrer via l'algorithme officiel pour obtenir le message original en mode texte brut.

Pour tout message chiffré, les informations renvoyées doivent également être chiffrées.

Traitement des informations cryptées

Senparc.Weixin.MP a automatiquement jugé les trois types de messages. Il n'est pas nécessaire de prêter attention aux processus de décryptage et de cryptage pendant le processus de développement, et cela continue. reste dans le processus de développement « mode texte brut ».

Dans le MessageHandler correspondant, nous pouvons connaître l'état actuel du cryptage grâce à certains paramètres :

messageHandler.UsingEcryptMessage : indique si les informations cryptées sont utilisées (y compris le mode de compatibilité et le mode de sécurité)

MessageHandler.UsingCompatibilityModelEcryptMessage : Si le mode de compatibilité est utilisé pour chiffrer le message

Grâce à la combinaison des deux propriétés ci-dessus, nous pouvons savoir quel mode de chiffrement le compte utilise actuellement (bien sûr, dans la plupart des cas, le développeur n'a pas besoin de s'en soucier).

Afin de mieux suivre les informations, MessageHandler a ajouté l'attribut FinalResponseDocument :

messageHandler.ResponseDocument : structure en texte brut de l'objet XML des données de réponse

messageHandler.FinalResponseDocument : final L'objet XML qui sera renvoyé au serveur sera cohérent avec le ResponseDocument s'il n'est pas chiffré, sinon il sera automatiquement chiffré

Principe de chiffrement

À propos des algorithmes de chiffrement (y compris des exemples de téléchargements dans plusieurs langues) ) peut être trouvé dans le document d'aide officiel : http://mp.weixin.qq.com/wiki/index.php?title=Technical Solution

Ce que je veux expliquer ici, c'est EncodingAESKey. L'explication officielle est un peu floue. En fait, EncodingAESKey est un codage Base64 d'AESKey, et AESKey est une chaîne aléatoire de longueur 32 (sélectionnée parmi a-z, A-Z, 0-9). Puisque la longueur de codage Base64 de 32 caractères est fixée à 44 (le dernier caractère est =), après avoir supprimé le =, la EncodingAESKey finale de 43 caractères est générée. EncodingAESKey est utilisé dans le processus de cryptage et de déchiffrement des messages, et une confidentialité stricte est requise.

Ce qui suit est un code C# pour générer EncodingAESKey :

protected string CreateEncodingAESKey()
        {
            string aesKey = GetRadomStr(32);//获得a-z,A-Z,0-9的随机字符串
            var encodingAesKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(aesKey), Base64FormattingOptions.None);
            return encodingAesKey.Substring(0, encodingAesKey.Length - 1);
        }


Pour plus de développement de la plateforme publique WeChat : articles liés au cryptage des messages, veuillez prêter attention à le site PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn