Cifrado de mensajes y diseño de firmas
La seguridad de los datos y la información es de gran importancia para cada uno de nosotros. Desde que entré en contacto con Internet, he comprendido la importancia de los datos. Tengo requisitos extremadamente altos para la seguridad de los datos. Es exagerado decir que nunca he recibido argumentos de venta o llamadas de acoso. Personalmente odio este tipo de cosas. Odio comprar, vender y filtrar datos. Desde que comencé a trabajar en finanzas, tengo una nueva comprensión de la seguridad de los datos. A través de varios canales de pago, conocí el negocio de pagos. Según las necesidades del negocio, comencé a escribir la interfaz externa de pago. Para ser honesto, el diseño de seguridad me dio dolor de cabeza. El método inicial utilizado fue cifrar el mensaje. MD5, y obtuve Generar una cadena de firma, cadena de firma = MD5 (texto original y clave). Si un pirata informático intercepta el mensaje y lo manipula, el servidor no pasará la verificación de la firma porque el mensaje ha cambiado y la firma calculada. La cadena cambiará, entonces el pirata informático debe volver a calcular la cadena de firma. Para calcular la cadena de firma, necesita conocer las reglas y claves de cifrado. Aunque este método garantiza la seguridad, existe un problema. cambie los datos, solo registra y guarda los datos que usted expone, lo cual también es muy peligroso. Después de consultar y aprender, se adoptó otra solución para garantizar la integridad del mensaje durante el proceso de llamada de la interfaz. Algoritmo de firma MD5 Para garantizar la interfaz Para proteger la información confidencial del usuario durante el proceso de llamada, el cifrado AES se realiza en los campos que involucran la información confidencial del usuario (como número de cuenta, nombre, número de teléfono móvil, etc.).
Utilice MD5(data+"&key="+md5Key).toUpperCase() para firmar, donde: md5Key es la clave de firma MD5 especificada por usted mismo. Finalmente, convierta la cadena de firma obtenida a mayúsculas. Supongamos que todos los datos enviados o recibidos son un conjunto M, ordene los valores de los parámetros no nulos en el conjunto M de acuerdo con el código ASCII del nombre del parámetro de pequeño a grande (orden lexicográfico) y obtenga la cadena, usando el formato del par clave-valor de URL (es decir, clave1 = valor1 y clave2 = valor2…) concatenado en datos de cadena. Al final de los datos, se empalma la clave y se realiza la operación MD5 en ella, y luego todos los caracteres de la cadena resultante se convierten a mayúsculas para obtener el valor de la firma.
El modo de cifrado AES es "AES/ECB/PKCS5Padding". Los datos cifrados se cifran utilizando AESKey y luego se utiliza Base64 para obtener los datos cifrados. AESKey tiene 16 bits de longitud y consta de 26 letras y números.
Dirección original del blog: Cifrado de mensajes y diseño de firmas