cifrado de parámetros de URL
Parámetros de URL cifrados
Cuando el complemento accede al programa web, puede utilizar el método Get o el método Post para enviar datos, sin importar qué método se utilice, según. Según las especificaciones del protocolo HTTP, los parámetros siempre están de acuerdo con el envío en el siguiente formato (cada par de nombre de parámetro/valor de parámetro está separado por "&"):
Nombre de parámetro 1=valor de parámetro 1&nombre del parámetro 2=valor del parámetro 2&nombre del parámetro 3=valor del parámetro 3...
Si no utiliza SSL, todos los nombres y valores de los parámetros se transmitirán al servidor web a través de la red en claro Obviamente, este método es muy inseguro. Para garantizar la comunicación entre el complemento y el programa web. Seguridad, el complemento puede cifrar cada valor de parámetro utilizando el algoritmo de cifrado Rijndael antes de enviar los parámetros y convertirlo en un formato legible. cadena usando codificación Base64.
El algoritmo de cifrado Rijndael es un algoritmo de cifrado simétrico eficiente. Es una implementación de AES (Advanced Encryption Standard, Estándar de algoritmo de cifrado avanzado). Tiene dos parámetros básicos durante el cifrado y descifrado: vector inicial y clave secreta. El programa web debe utilizar el mismo vector inicial y clave que la configuración del complemento al descifrar.
Los siguientes son ejemplos de cifrado y no cifrado:
a. Sin cifrado: Username=test&Password=123456&ClientIP=192.168.0.200&CurrentTime=2005-07-06+ 23%3a51. %3a29
b. Cifrado: Nombre de usuario=ZtlBwgvwkS5YV98N9cgO%2fw%3d%3d&Password=vBSchK4dJX7Z2zfUatu9ZQ%3d%3d&CurrentTime=mpNifqRIvBV2xZi3d%2fPli6%2bZwR9B KHs4y6t%. 2bNS2QIr4%3d
En la Web El El terminal debe usar el mismo algoritmo para descifrar cada valor de parámetro. La forma de implementar esto depende del lenguaje de programación web que esté utilizando, lo que requiere que encuentre una implementación de algoritmo específica del lenguaje. El proceso de descifrar el valor de un parámetro incluye los siguientes tres pasos:
1. Utilice el algoritmo Base64 para convertir el valor del parámetro en una matriz de bytes
2. convierta el valor obtenido en 1 Descifre la matriz de bytes para obtener otra matriz de bytes;
3. Convierta la matriz de bytes obtenida en 2 en una cadena usando un conjunto de caracteres específico para obtener los datos originales.
El archivo "GVODClassLib.dll" en el directorio de instalación del complemento contiene la clase de implementación del algoritmo de cifrado y descifrado CryptoUtility. Su método Decrypt puede descifrar directamente el texto cifrado codificado en Base64 en la cadena de texto original. El programa web está escrito usando asp.net. Puede copiar el archivo al directorio "/bin" de su sitio web y luego seguir el siguiente ejemplo para completar el descifrado:
<%@ idioma de la página. = "C#" %>
<%@ import namespace="Com.GVOD" %>
<%
//Defina la clave, cámbiela póngalo en La clave que utilizó para el cifrado
string key = "OEtxF/yyALd2NflVW4KSMspQIozPkSRL+mEdvlBAzUQ=";
//Defina el vector inicial, cámbielo al vector inicial que utilizó para cifrado
string iv = "Cz3EXGTEMeIN8PXKFLiZWg==";
//Defina la longitud de la clave, cámbiela a la longitud de la clave que utiliza para el cifrado
int keyLength = 256;
//Generar una instancia de la clase CryptoUtility
CryptoUtility util = new CryptoUtility(key, iv, keyLength);
//Descifrar nombre de usuario
cadena nombre de usuario = util.Decrypt(Request["Username"]);
//Descifrar contraseña
cadena contraseña = util. Decrypt(Solicitud["Contraseña "]);
//Descifrar otros parámetros
...
%>