Cifrado y firma

AES es un cifrado en bloque, que divide el texto sin formato en N grupos y luego cifra cada grupo. La longitud de la clave de AES puede ser de 128, 192 o 256 bits.

El algoritmo AES en sí opera en matrices de bytes. Por lo tanto, la codificación BASE64 se usa generalmente para convertir la matriz de bytes en una cadena después del cifrado, la decodificación BASE64 se usa para convertir la cadena nuevamente en una matriz de bytes. . Tenga en cuenta aquí que no todas las conversiones tienen codificación BASE64 y algunas se convierten a hexadecimal. Cuando me conecté con el pago de terceros, no proporcionaron una demostración, solo mencionaron el cifrado AES. Durante la depuración conjunta, siguió informando un error de descifrado. La última razón es que usan hexadecimal, mientras que yo uso BASE64 (lleno de trampas).

DES también es un algoritmo de cifrado de bloques. Cifra datos en grupos de 64 bits. Sin embargo, debido a que la clave secreta de 56 bits que utiliza es demasiado corta, puede descifrarse en 24 horas con la potencia informática moderna. Por lo tanto, este método de cifrado generalmente no se considera.

El algoritmo de cifrado RSA es un algoritmo de cifrado asimétrico. RSA se usa ampliamente (todos los canales de pago de terceros que acepto usan cifrado simétrico usan RSA)

Hay tres métodos principales de relleno de cifrado RSA: NoPadding, PKCS1Padding y OAEPPadding. Primero hablemos de qué es el relleno. El cifrado RSA completará algunos números aleatorios.

Utilizando el método de llenado PKCS1Padding, se completará un número aleatorio de 11 bytes en la firma de texto sin formato. Por lo tanto, el texto cifrado producido al cifrar el texto sin formato será diferente cada vez. Si desea que el texto cifrado generado sea el mismo cada vez, utilice NoPadding

MD5 es un algoritmo que ingresa información de longitud variable y genera una longitud fija de 128 bits. Después del flujo del programa, se generan cuatro datos de 32 bits y finalmente se combinan en un hash de 128 bits. Hay algunos problemas con esto:

1. Algunas contraseñas que no son lo suficientemente complejas son difíciles de evitar con tablas arcoíris (tablas que se calculan previamente con cálculos inversos MD5)

2. La misma contraseña, el código MD5 generó lo mismo.

Para solucionar los dos problemas anteriores, una mejor solución es MD5 + salt, también conocido como MD5 plus salt, que significa agregar una cadena de valores salt a la contraseña original y luego ejecutar MD5 . El valor de sal salt es una cadena aleatoria. El valor de sal de cada usuario es generalmente diferente, lo que garantiza que el valor hash MD5 final de diferentes usuarios sea diferente. Además, debido a que hay una cadena de cadenas aleatorias, las tablas de arcoíris también son difíciles.

Debido a que MD5 tiene los problemas anteriores, SHA es una versión mejorada de MD5. El cifrado SHA utiliza una clave fija como parámetro. Equivale a la sal mencionada anteriormente. La clave es compartida, por lo que es necesario conservarla en buen estado.

SHA tiene una serie como SHA-256, SHA-512, etc. Los siguientes 256 y 512 son la longitud de los datos generados, 256 bits y 512 bits.

Se refiere a los datos obtenidos cifrando la firma de los datos originales con la clave privada del usuario. Las firmas digitales definen dos operaciones complementarias: una de firma y otra de verificación. "Firma de clave privada, verificación de clave pública"

Firma: el remitente primero utiliza un algoritmo de firma para firmar el texto sin formato (la longitud del resumen firmado es corta). Luego use su propia clave privada para cifrar la firma formada. Los datos cifrados aquí son la firma digital.

Verificación: el destinatario utiliza la clave pública del remitente para descifrar la firma cifrada para obtener el resultado A, y luego firma el texto sin formato para obtener el resultado B. Finalmente, compare A y B. Este método no solo puede garantizar la exactitud de la identidad del remitente, sino también garantizar que los datos no sean manipulados durante la transmisión.

Los sobres digitales funcionan como sobres normales. Los sobres ordinarios están obligados legalmente a garantizar que solo el destinatario pueda leer el contenido de la carta; los sobres digitales utilizan tecnología de criptografía para garantizar que solo el destinatario especificado pueda leer el contenido del mensaje.

En los sobres digitales se utiliza cifrado simétrico y cifrado asimétrico.

El remitente de la información primero usa una contraseña simétrica generada aleatoriamente para cifrar la información (porque la tecnología de cifrado asimétrico es relativamente lenta) y luego usa la clave pública del destinatario para cifrar la contraseña simétrica. La clave simétrica cifrada por la clave pública se llama sobre digital. . Al transmitir información, cuando el destinatario desea descifrar la información, primero debe descifrar el sobre digital con su propia clave privada para obtener la contraseña simétrica y luego usar la contraseña simétrica para descifrar la información obtenida.

Los sobres digitales no solo aprovechan las ventajas de alta velocidad y buena seguridad de los algoritmos de cifrado simétrico, sino que también aprovechan las ventajas de la cómoda gestión de claves de los algoritmos de cifrado asimétrico.

Si me pidieran que diseñara métodos de cifrado y firma, usaría los siguientes métodos: