Cómo usar C# para crear código que responda a las visitas de WeChat y a las respuestas automáticas
Créelo, agregando las siguientes referencias:
Use System;
Use System.Collections.Generic
Use System.Linq;
Usar System.Web
Usar System.Data.SqlClient
Usar System.Data.SqlClient; .Data.SqlClient
Usar System.Data.SqlClient
Usar System.IO
Usar System.Text; Sistema .Xml;
Utilice System.Xml.XPath. Seguridad;
Utilice System.Net;
Utilice System.Collections;
Utilice System.Security.Cryptography;
Consejos: A programa de procesamiento general que puede devolver datos de respuesta HTTP en varios formatos, incluidas, entre otras, imágenes en GIF y otros formatos. Es muy potente y flexible, pero la dificultad de desarrollo es un poco alta. en LOL porque admite micro El formato de datos devuelto por la plataforma pública de Botantan es generalmente XML y también incluye algunas cadenas que no son XML, etc., por lo que podemos completar bien la tarea utilizando un programa de procesamiento general.
2. Escriba la función de verificación de firma
El proceso de acceso a la interfaz es realmente muy simple, para usar las palabras de un hombre rudo, gritaré "Oye hermana, por favor responde". ..." .."
Hermano, piénsalo, si no fueras tú quien se subió a la cama de la niña en medio de la noche, sino un hacker llamado dosboy, entonces no lo haría. poder pensar en las consecuencias, así que antes de abrir WeChat, hermana, debes decirle al hermano (plataforma WeChat) la contraseña (un token preestablecido en WeChat)
Cada vez que el hermano tiene una solicitud de acceso, La hermana puede verificarlo debido a la red. Todo lo anterior está en texto claro (dosboy lo monitoreará debajo de la ventana), por lo que esta verificación no se puede pasar directamente al Token, pero el documento WeChat se descarga a través de un determinado algoritmo:
Según el documento WeChat, después de que el desarrollador envíe la información, el servidor WeChat enviará una solicitud GET para completar la solicitud GET. La solicitud GET lleva cuatro parámetros:
Parámetros
Descripción
Firma Firma cifrada de WeChat La firma combina el parámetro token completado por el desarrollador con el parámetro de marca de tiempo y el parámetro nonce en la solicitud
marca de tiempo
. p>número aleatorio nonce
ehostr.Cadena aleatoria
El desarrollador verifica la solicitud verificando la firma (hay varios métodos a continuación si se confirma que GET). La solicitud proviene del servidor WeChat, devuelva el contenido del parámetro echostr tal como está, el acceso tendrá efecto y el desarrollador accederá con éxito; de lo contrario, el acceso falla.
El proceso de cifrado/verificación es el siguiente: 1. Ordene los tres parámetros de token, marca de tiempo y nonce en el orden del diccionario 2. Empalme los tres parámetros en una cadena y realice el cifrado sha1 3. El desarrollador obtiene La cadena cifrada se puede comparar con la firma.
Basado en la información anterior, escribí una función que debe usarse. Si insistes en no usar checkSignature, el código de la plataforma también puede acceder a ella, pero tú. Puede juzgar el grado de peligro usted mismo:
private bool checkSignature (firma de cadena, marca de tiempo de cadena, nonce de cadena, token de cadena)
{
ArrayList tmpArray = new ArrayList();
tmpArray.Add(token);
tmpArray.Add(marca de tiempo);
tmpArray.Sort();
string tmpStr = (string) tmpArray[0] + (string)tmpArray[1] + (string)tmpArray[2];
//Construir objeto SHA1
SHA1 sha = new SHA1CryptoServiceProvider();
p>
//convierte mystr a byte[]
ASCIIEncoding enc = new ASCIIEncoding();
byte[ ] dataToHash = enc. GetBytes(tmpStr);
//Operación hash
byte[] dataHashed = sha.ComputeHash(dataToHash);
//Convierte el resultado de la operación en una cadena
string hash = BitConverter.ToString(dataHashed);