[Notas sobre la red informática 8] Capa de aplicación (5) HTTPS

¿Qué es HTTPS?

HTTPS resuelve el problema de la inseguridad HTTP

Los datos en todo el proceso de transmisión HTTP están en texto claro. Cualquiera puede interceptar , modificar o falsificar mensajes de solicitud/respuesta en el enlace, y los datos no son confiables.

  • HTTPS utiliza algoritmos de cifrado para cifrar mensajes y los piratas informáticos no pueden entenderlos incluso si los interceptan.

  • HTTPS utiliza un algoritmo de resumen para confirmar la integridad del mensaje . Una vez que un hacker modifica el mensaje, HTTPS puede detectarlo a tiempo y manejarlo en consecuencia.

  • HTTPS utiliza firmas digitales para garantizar que los piratas informáticos no puedan falsificar mensajes de solicitud o respuesta.

HTTPS consta de HTTP + SSL/TLS , es decir, se agrega una capa de conexión segura SSL ( protocolo HTTP que se ejecuta sobre SSL ) debajo de HTTP.

Insertar descripción de la imagen aquí

SSL es Secure Sockets Layer , que se encuentra en la capa 5 (capa de sesión) en el modelo de red OSI de siete capas. Fue inventado por Netscape en 1994 y se utilizan comúnmente dos versiones, v2 y v3 .

En 1999 , el IETF le cambió el nombre a TLS ( Transport Layer Security ) , lo estandarizó oficialmente y recalculó el número de versión de 1.0, por lo que TLS1.0 es en realidad SSLv3.1.

Hoy en día, TLS ha desarrollado tres versiones, a saber, 1.1 en 2006, 1.2 en 2008 y 1.3 en 2018. El TLS más utilizado es 1.2.

La seguridad de HTTPS se basa en el algoritmo de cifrado de TLS, por lo que comprender HTTPS es comprender el principio del algoritmo de cifrado detrás de TLS.

Algoritmo de cifrado de datos

criptografía clásica

En las guerras antiguas, para evitar que se filtrara información importante si se interceptaban cartas, la gente empezó a cifrarlas.

cifrado de cambio

Como los palos de cifrado, que utilizan tiras de tela envueltas alrededor de palos de madera para cifrar letras.

Insertar descripción de la imagen aquí

  • Algoritmo de cifrado: escribir después de envolver
  • Clave: tamaño del palo

cifrado de reemplazo

Utilice texto diferente según las reglas para reemplazar el texto original para el cifrado.

Por ejemplo, tabla de códigos:
Caracteres originales: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Caracteres de contraseña: BCDEFGHIJKLMNOPQRSTUVWXYZA
Letra original: Te amo
Carta cifrada: J mpwf zpv
Después de la interpretación: Te amo

  • Algoritmo de cifrado: texto de reemplazo
  • Clave: tabla de códigos de reemplazo

A la criptografía clásica corresponde la criptografía moderna , que incluye principalmente dos categorías: algoritmos de cifrado simétrico y algoritmos de cifrado asimétrico.

  • Puede cifrar cualquier dato binario
  • La aparición del cifrado asimétrico ha dado a la criptografía una gama más amplia de usos: firmas digitales

Algoritmo de cifrado simétrico

Algoritmo de cifrado simétrico: utilice la misma clave, diferentes algoritmos de cifrado y descifrado , cifre texto sin formato y descifre texto cifrado.

Insertar descripción de la imagen aquí

Hay muchos algoritmos de cifrado simétrico para elegir en TLS , como RC4, DES, 3DES, AES, ChaCha20 , etc. Los tres primeros se consideran inseguros y actualmente solo se usan comúnmente AES y ChaCha20 .

  • AES significa " Estándar de cifrado avanzado " (Estándar de cifrado avanzado) y la longitud de la clave puede ser de 128 bits (bits), 192 bits (bits) o 256 bits (bits). El nivel de seguridad es muy alto, el rendimiento también es muy bueno y parte del hardware se optimizará especialmente, por lo que es muy popular y es el algoritmo de cifrado simétrico más utilizado.

  • ChaCha20 es otro algoritmo de cifrado diseñado por Google. La longitud de la clave se fija en 256 bits. El rendimiento de ejecución del software puro es mejor que AES . Alguna vez fue popular en clientes móviles, pero después de ARMv8 , también se agregó la optimización de hardware AES , por lo que es Ya no tiene ventajas obvias, pero sigue siendo un buen algoritmo.

Descifrando el cifrado simétrico

Ideas de última hora:

  • Obtenga uno o más pares de texto-texto cifrado originales
  • Intente encontrar una clave que pueda cifrar el texto original en estos pares de texto y texto cifrado originales en texto cifrado y descifre el texto cifrado en el texto original, lo cual es un descifrado exitoso.

Antifisuras:

  • El estándar para un excelente algoritmo de cifrado simétrico es que el cracker no puede encontrar un método de cracking más efectivo que el método de fuerza bruta (método de cracking por fuerza bruta), y el tiempo de cracking del método de fuerza bruta es lo suficientemente largo (por ejemplo, miles de años). ).

Desventajas del cifrado simétrico

El mayor problema al que se enfrentan los algoritmos de cifrado simétrico: cómo transferir la clave de forma segura a la otra parte . El término se denomina " intercambio de claves ".

Insertar descripción de la imagen aquí

La desventaja del algoritmo de cifrado simétrico es que la clave no se puede transmitir a través de una red insegura, porque una vez que se filtra la clave, la comunicación cifrada fallará.

algoritmo de cifrado asimétrico

El algoritmo de cifrado asimétrico utiliza el mismo algoritmo de cifrado + dos claves diferentes (asimétricas), una se llama clave pública (clave pública) y la otra se llama clave privada (clave privada). La clave pública se puede hacer pública para que cualquiera pueda acceder a ella. uso, y La clave privada debe mantenerse estrictamente confidencial.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Las claves públicas y privadas tienen una característica: son unidireccionales . Aunque ambas pueden usarse para cifrar y descifrar, después de cifrar la clave pública, solo se puede descifrar con la clave privada . Por el contrario, después de cifrar la clave privada. , sólo se puede descifrar con la clave pública .

Al utilizar la comunicación de cifrado asimétrico, puede pasar las claves públicas de ambas partes entre sí en una red que no es de confianza y luego usar la clave pública de la otra parte para cifrar el mensaje y usar su propia clave privada para firmar el mensaje antes de enviarlo, logrando una red no confiable Difusión de claves confiable y comunicación cifrada en Internet.

Insertar descripción de la imagen aquí

RSA

El diseño de algoritmos de cifrado asimétricos es mucho más difícil que el de los algoritmos simétricos. En TLS , solo existen unos pocos tipos , como DH, DSA, RSA, ECC , etc.

RSA es probablemente el más famoso, casi sinónimo de cifrado asimétrico. Su seguridad se basa en el problema matemático de " descomposición de enteros ", utilizando el producto de dos números primos muy grandes como material para generar la clave . una clave a partir de la clave pública Deducir la clave privada es muy difícil.

La longitud recomendada de las claves RSA hace 10 años era 1024 , pero con la mejora de la potencia informática de las computadoras, 1024 ya no es seguro y, en general, se cree que se requieren al menos 2048 bits.

ECC

ECC (criptografía de curva elíptica) es una "estrella en ascenso" en el cifrado asimétrico. Se basa en el problema matemático del " logaritmo discreto de curva elíptica " y utiliza ecuaciones de curva específicas y puntos base para generar claves públicas y privadas . El subalgoritmo ECDHE se utiliza para el intercambio de claves . , ECDSA se utiliza para firmas digitales .

Las dos curvas comúnmente utilizadas en la actualidad son P-256 (secp256r1, llamada prime256v1 en OpenSSL) y x25519 . P-256 es la curva recomendada por NIST (Instituto Nacional de Estándares y Tecnología) y NSA (Agencia de Seguridad Nacional), y x25519 se considera la curva más segura y rápida.

En comparación con RSA, ECC tiene ventajas obvias en cuanto a seguridad y rendimiento. ECC de 160 bits equivale a RSA de 1024 bits y ECC de 224 bits equivale a RSA de 2048 bits. Debido a que la clave es corta, la cantidad correspondiente de cálculo, memoria y consumo de ancho de banda es menor, y se mejora el rendimiento del cifrado y descifrado, lo cual es muy atractivo para la Internet móvil actual.

Descifrando cifrado asimétrico

Ideas de última hora:

  • La diferencia con el cifrado simétrico es que la clave pública del cifrado asimétrico es fácil de obtener, por lo que no es difícil crear un par texto-texto cifrado original.
  • Por lo tanto, la clave para el cifrado asimétrico es solo encontrar una clave privada correcta que pueda descifrar todo el texto cifrado con la clave pública. Encontrar una clave privada de este tipo es un éxito
  • Debido a las características del cifrado asimétrico, cómo inferir la clave privada a través de la clave pública suele ser una idea (como RSA), pero a menudo el mejor método sigue siendo el método exhaustivo, pero la diferencia con el descifrado del cifrado simétrico es que el cifrado simétrico cracking Es intentar constantemente si su nueva clave puede cifrar y descifrar el par de texto-cifrado original que obtuvo. En el cifrado asimétrico, intenta constantemente ver si su nueva clave privada y la clave pública son mutuamente descifrables.

Antifisuras:

  • Al igual que el cifrado simétrico, el estándar para que un algoritmo de cifrado asimétrico sea excelente es que el descifrador no puede encontrar un método de descifrado más eficaz que el método exhaustivo, y el tiempo de descifrado del método exhaustivo es lo suficientemente largo.

Ventajas y desventajas del cifrado asimétrico

  • Ventajas: las claves se pueden transmitir a través de redes no seguras
  • Desventajas: el cálculo es complejo, por lo que el rendimiento es mucho peor que el cifrado simétrico

Cifrado simétrico VS cifrado asimétrico

Cifrado simétrico cifrado asimétrico
Hay un problema de intercambio de claves. Sin problemas de intercambio de claves
Velocidad de computación rápida La velocidad de operación es muy lenta porque el algoritmo de cifrado asimétrico se basa en problemas matemáticos complejos, e incluso ECC es varios órdenes de magnitud peor que AES .

Si solo se utiliza cifrado asimétrico, aunque la seguridad está garantizada, la velocidad de comunicación es muy lenta y la practicidad se vuelve nula.

TLS utiliza cifrado híbrido

Al comienzo de la comunicación, utilice algoritmos asimétricos , como RSA y ECDHE , para resolver primero el problema del intercambio de claves .

El cifrado híbrido resuelve el problema del intercambio de claves de los algoritmos de cifrado simétrico y tiene en cuenta tanto la seguridad como el rendimiento.

Insertar descripción de la imagen aquí

Luego se usa un número aleatorio para generar la " clave de sesión " utilizada por el algoritmo simétrico , y luego se usa la clave pública para cifrarla. Debido a que las claves de sesión son cortas, generalmente solo 16 o 32 bytes, no importa si son un poco más lentas.

integridad de los datos

algoritmo de resumen

Aunque los piratas informáticos no pueden obtener la clave de sesión y no pueden descifrar el texto cifrado, pueden recopilar suficiente texto cifrado mediante escuchas ilegales y luego intentar modificarlo y reorganizarlo antes de enviarlo al sitio web. Debido a que no existe garantía de integridad, el servidor sólo puede "aceptar todo" y luego puede obtener más pistas a través de la respuesta del servidor y, finalmente, el texto claro se descifrará.

El principal medio para lograr la integridad es el algoritmo de resumen.

Puede entender aproximadamente el algoritmo de resumen como un algoritmo de compresión especial que puede "comprimir" datos de cualquier longitud en una cadena de "resumen" única y de longitud fija , como si generara un número para este dato: "Huella digital" .

Insertar descripción de la imagen aquí

Desde otra perspectiva, el algoritmo de resumen también puede entenderse como un algoritmo de cifrado especial "unidireccional" . Solo tiene un algoritmo y no tiene clave. Los datos cifrados no se pueden descifrar y el texto original no se puede deducir del resumen .

MD5 (Message-Digest 5) y SHA-1 (Secure Hash Algorithm 1) son los dos algoritmos de resumen más utilizados, capaces de generar resúmenes digitales de 16 y 20 bytes de longitud. Sin embargo, la seguridad de estos dos algoritmos es relativamente baja y no lo suficientemente segura, y su uso ha sido prohibido en TLS .

Actualmente, TLS recomienda utilizar el sucesor de SHA-1: SHA-2

SHA-2 es en realidad un nombre colectivo para una serie de algoritmos de resumen. Hay 6 tipos en total. Los más utilizados son SHA224 , SHA256 y SHA384 , que pueden generar resúmenes de 28 bytes, 32 bytes y 48 bytes. respectivamente.

Insertar descripción de la imagen aquí

Si un pirata informático cambia incluso un signo de puntuación en el medio, el resumen será completamente diferente y el sitio web descubrirá que el mensaje ha sido manipulado mediante cálculos y comparaciones, lo cual no es confiable.

firma digital

Los piratas informáticos pueden disfrazarse de sitios web para robar información. A su vez, también puede hacerse pasar por usted y enviar pagos, transferencias y otros mensajes al sitio web. El sitio web no tiene forma de confirmar su identidad y el dinero puede ser robado.

En la vida real, la solución para la autenticación de identidad es la firma y el sello : siempre que escriba su firma o sello en el papel, podrá demostrar que el documento fue emitido por usted y no por otra persona.

¿Hay algo en TLS que sea muy similar a una firma o sello en la vida real que solo yo pueda tener y nadie más ? Simplemente use esto para demostrar su identidad en el mundo digital.

Esta cosa es la " clave privada " en el cifrado asimétrico . El uso de la clave privada más el algoritmo de resumen puede lograr la "firma digital" y la " autenticación de identidad ".

Una firma digital es el contenido del resumen generado por el algoritmo de resumen y luego cifrado con la clave privada . Esta parte del contenido se coloca en el mensaje junto con el resumen original como autenticación de identidad.

Cifrado de clave privada - descifrado de clave pública

El proceso por el que el cliente envía mensajes cifrados al servidor:

Insertar descripción de la imagen aquí

Proceso de firma del cliente:

  • ① Ejecute el algoritmo de resumen (SHA-2) en el texto sin formato para generar un resumen
  • ② Utilice la clave privada del cliente para cifrar el resumen generado para generar una firma . Solo se cifra el resumen porque es más corto , por lo que el cifrado y descifrado son más rápidos.
  • ③ Adjunte el resumen y la firma al texto original, luego use la clave de sesión para cifrar el mensaje, generar texto cifrado y transmitirlo.

Insertar descripción de la imagen aquí

Proceso de firma de verificación del lado del servidor:

  • ① Utilice la clave de sesión para descifrar el texto cifrado y obtener el texto sin formato
  • ② Ejecute el algoritmo de resumen (SHA-2) en el texto sin formato para generar un resumen y compare el resumen en el mensaje.
  • ③ Utilice la clave pública del cliente para descifrar la firma para obtener el texto sin formato del resumen y compararlo con el resumen del mensaje.

El proceso de envío de mensajes cifrados desde el servidor al cliente es similar al anterior:

Proceso de firma del lado del servidor:

  • ① Ejecute el algoritmo de resumen (SHA-2) en el texto sin formato para generar un resumen
  • ② Utilice la clave privada del servidor para cifrar el resumen generado y generar una firma.
  • ③ Adjunte el resumen y la firma al texto original, luego use la clave de sesión para cifrar el mensaje, generar texto cifrado y transmitirlo.

Proceso de firma de verificación del cliente:

  • ① Utilice la clave de sesión para descifrar el texto cifrado y obtener el texto sin formato
  • ② Ejecute el algoritmo de resumen (SHA-2) en el texto sin formato para generar un resumen y compare el resumen en el mensaje.
  • ③ Utilice la clave pública del servidor para descifrar la firma para obtener el texto sin formato del resumen y compararlo con el resumen del mensaje.

Problemas de confianza de clave pública

Encuentre un tercero de confianza reconocido y déjelo actuar como "punto de partida de confianza y punto final de recursividad" para construir una cadena de confianza de clave pública .

Este "tercero" es lo que solemos llamar CA (Autoridad de Certificación). Es como la Oficina de Seguridad Pública, el Ministerio de Educación y el Centro Notarial en el mundo en línea: tiene una credibilidad extremadamente alta, firma cada clave pública y utiliza su propia reputación para garantizar que la clave pública no pueda ser falsificada y sea confiable.

certificado digital CA

La autenticación de firma de la clave pública por parte de la CA también tiene un formato: no simplemente vincula la clave pública a la identidad del titular, sino que también incluye el número de serie, el propósito, el emisor, el tiempo de validez , etc. , que se escriben en un paquete. Luego se firma para acreditar completamente las diversas informaciones asociadas a la clave pública, formando un " certificado digital " (Certificado).

Sólo existen unas pocas CA reconocidas en el mundo, como DigiCert, VeriSign, Entrust, Let's Encrypt, etc. Los certificados que emiten se dividen en tres tipos : DV, OV y EV . La diferencia radica en el grado de integridad.

DV es el más bajo, sólo es creíble a nivel de nombre de dominio y no sabemos quién está detrás. EV es el más alto, ha sido estrictamente verificado por ley y auditoría y puede probar la identidad del propietario del sitio web.

Insertar descripción de la imagen aquí

Pregunta: ¿Cómo demuestra una CA que es confiable?

  • Una CA más pequeña puede permitir que una CA más grande firme y se autentique, pero el final de la cadena, la CA raíz , sólo puede demostrar su valía, lo que se denomina " Certificado raíz ". Debes creerlo; de lo contrario, toda la cadena de confianza del certificado no avanzará.
    Insertar descripción de la imagen aquí

Con este sistema de certificados, el sistema operativo y los navegadores tienen certificados raíz integrados de las principales CA. Al navegar por Internet, siempre que el servidor envíe su certificado, se puede verificar la firma en el certificado, siguiendo la Cadena de Certificados. Verificar capa por capa hasta encontrar el certificado raíz, puede estar seguro de que el certificado es confiable y que la clave pública interna también lo es.

Proceso de protocolo de enlace TLS

Insertar descripción de la imagen aquí

Para conocer el proceso de protocolo de enlace TLS detallado de ECDHE y RSA , consulte: https://www.processon.com/view/link/62bed0685653bb214fa3d58f

Resumir

HTTPS:

  • HTTPS = HTTP + SSL/TLS, que es un protocolo HTTP que se ejecuta sobre SSL. Debajo de la capa HTTP, se agrega una capa de conexión segura SSL/TLS encima de la capa de transporte . Está ubicada en la quinta capa de sesión en el Modelo OSI.

La seguridad de HTTPS se refleja principalmente en tres aspectos:

  • ① Utilice un algoritmo de cifrado para cifrar el mensaje . Los piratas informáticos no podrán entenderlo incluso si lo interceptan.
  • ② HTTPS utiliza un algoritmo de resumen para confirmar la integridad del mensaje . Una vez que un hacker modifica el mensaje, HTTPS puede detectarlo a tiempo y manejarlo en consecuencia.
  • ③ Utilice firmas digitales para garantizar que los piratas informáticos no puedan falsificar mensajes de solicitud o respuesta.

Algoritmo de cifrado simétrico:

  • Utilice la misma clave y diferentes algoritmos de cifrado y descifrado para cifrar texto sin formato y descifrar texto cifrado.
  • Los algoritmos de cifrado simétrico en TLS incluyen RC4, DES, 3DES, AES , ChaCha20 , etc. Los tres primeros se consideran inseguros y actualmente solo se usan comúnmente AES y ChaCha20 .
  • AES : Estándar de cifrado avanzado (Estándar de cifrado avanzado), la longitud de la clave puede ser de 128 bits, 192 bits o 256 bits, con alta seguridad y buen rendimiento.
    ChaCha20 : Un algoritmo de cifrado diseñado por Google con una longitud de clave fija de 256 bits. Alguna vez fue popular en clientes móviles, pero la optimización de hardware AES se agregó después de ARMv8, por lo que ya no tiene ventajas obvias, pero sigue siendo un buen algoritmo.
  • El problema que debe resolver el cifrado simétrico es el intercambio de claves . Su desventaja es que la clave no se puede transmitir a través de una red insegura.

Algoritmo de cifrado asimétrico:

  • El cifrado asimétrico utiliza dos claves asimétricas diferentes, una clave pública y una clave privada. La clave pública puede hacerse pública para que cualquiera la use y la clave privada debe mantenerse estrictamente confidencial .
  • La clave pública y la clave privada son unidireccionales . Una vez cifrada la clave pública, solo se puede descifrar con la clave privada . Por el contrario, una vez cifrada la clave privada, solo se puede descifrar con la clave pública .
  • El algoritmo de cifrado asimétrico más famoso es RSA . Su seguridad se basa en el problema matemático de la descomposición de enteros. ECC es más seguro y eficaz que RSA , y también es un algoritmo basado en problemas matemáticos.
  • Aunque el algoritmo de cifrado asimétrico resuelve el problema del intercambio de claves, se basa en problemas matemáticos complejos y la velocidad de operación es muy lenta . Si solo se utiliza cifrado asimétrico, la practicidad es cero .

TLS utiliza cifrado híbrido :

  • Primero resuelva el problema del intercambio de claves mediante un algoritmo de cifrado asimétrico , use números aleatorios para generar una " clave de sesión " utilizada en el algoritmo de cifrado simétrico y luego use la clave pública para cifrar la " clave de sesión " y envíela a la otra parte. y la otra parte usa la clave privada para descifrarla " Clave de sesión ", las dos partes pueden usar la " clave de sesión " para comunicarse según el algoritmo de cifrado simétrico .

    1) El servidor emite una clave pública (algoritmo de cifrado asimétrico)
    2) El cliente usa la clave pública para cifrar la [ clave de sesión ] generada (algoritmo de cifrado asimétrico)
    3) El servidor usa la clave privada para descifrar el mensaje enviado por el cliente [ Clave de sesión ] (algoritmo de cifrado asimétrico)
    4) Luego, el cliente y el servidor usan la [ clave de sesión ] para comunicarse (algoritmo de cifrado simétrico)

De esta manera, el problema del intercambio de claves se resuelve primero con un algoritmo de cifrado asimétrico y el rendimiento se mejora utilizando un algoritmo de cifrado simétrico.

Integridad de los datos:

  • Algoritmo de resumen : puede entenderse como un algoritmo de compresión especial , o algoritmo Hash , que puede comprimir datos de cualquier longitud en una cadena de resumen única y de longitud fija . También puede entenderse como un algoritmo de cifrado unidireccional el texto original no se puede deducir del resumen .

  • Los algoritmos de resumen más utilizados incluyen MD5 y SHA-1 , pero estos dos no son lo suficientemente seguros y TLS los ha desactivado . La recomendación actual es SHA-2 . SHA-2 es una serie de algoritmos de resumen. Los más utilizados son SHA224, SHA256 y SHA384, respectivamente. Capaces de generar resúmenes de 28, 32 y 48 bytes.

firma digital:

  • ① El cliente utiliza la clave privada para cifrar el resumen y generar una firma . Como autenticación de identidad , la firma y el resumen cifrado se juntan con el mensaje y se utilizan [ clave de sesión ] para la transmisión cifrada .
  • ② El servidor primero usa la [ clave de sesión ] para descifrar el mensaje, luego ejecuta el algoritmo de resumen , compara el resumen y verifica la integridad de los datos . Luego usa la clave pública del cliente para descifrar la firma , compara el resumen y realiza la identidad. autenticación .

Este es el proceso en el que el cliente envía un mensaje cifrado al servidor. A su vez, el proceso en el que el servidor envía un mensaje cifrado al cliente es similar a este.

Problemas de confianza de clave pública:

  • La agencia de CA realiza la certificación de firma en la clave pública y genera un certificado digital . El sistema operativo y el navegador tienen certificados raíz integrados de las principales CA. Siempre que el servidor envíe su certificado, puede verificar la firma en el certificado y seguir la cadena de certificados un nivel Verifique capa por capa hasta que encuentre el certificado raíz, puede estar seguro de que el certificado es confiable y la clave pública que contiene también es confiable.

Diagrama de flujo de interacción:

Insertar descripción de la imagen aquí


Complemente otro contenido relacionado con la codificación:

Base64

Un algoritmo de codificación que convierte datos binarios en una cadena de 64 caracteres.

Algoritmo: Corresponde cada 6 bits de los datos originales a un carácter en la tabla de índice Base 64 y organícelo en una cadena (8 bits por carácter).

Tabla de índice Base64:

Insertar descripción de la imagen aquí

Ejemplo de codificación: codificación Base64 "Man"

Insertar descripción de la imagen aquí

Ejemplo de codificación: relleno final de Base64

Insertar descripción de la imagen aquí

El propósito de Base64

  1. Amplía los métodos de almacenamiento y transmisión de datos binarios (por ejemplo, puede guardar datos en archivos de texto, enviar datos binarios a través de cuadros de diálogo de chat o mensajes de texto y agregar datos binarios simples a las URL)
  2. Las cadenas ordinarias se volverán ilegibles a simple vista después de codificarse en Base64, por lo que se pueden usar para evitar el peeping bajo ciertas condiciones (se usa con menos frecuencia)

Desventajas de Base64

  • Debido a su propio principio (6 bits a 8 bits), los datos aumentarán aproximadamente 1/3 después de cada codificación Base64 , lo que afectará el rendimiento del almacenamiento y la transmisión.

"¿La transmisión de imágenes cifradas en Base64 es más segura y eficiente"? ? ?

  • No. En primer lugar, Base64 no es cifrado; además, Base64 aumentará los datos en 1/3, reducirá el rendimiento de la red y aumentará la sobrecarga del tráfico del usuario, lo cual es un paso innecesario.

  • La codificación de imágenes Base64 es útil cuando a veces es necesario transmitir imágenes en forma de texto. Aparte de eso, no hay absolutamente ninguna necesidad de utilizar Base64 para el procesamiento adicional de la imagen.

Variante: Base58

  • El método de codificación utilizado por Bitcoin elimina el número "0", la letra mayúscula "O", la letra mayúscula "I" y la letra minúscula "l" en Base64, así como los símbolos "+" y "/". utilizado en Bitcoin Representación de dirección.
  • Base58 El objetivo principal de los cambios en Base64 es la comodidad del usuario. Base58 es más conveniente para la "transcripción manual" al eliminar caracteres indistinguibles. Además, eliminar los signos "+" y "/" también hace que la selección con doble clic sea conveniente para la mayoría del software.

Compresión y descompresión

  • Compresión: Codifique datos utilizando un algoritmo de codificación que tenga más ventajas de almacenamiento.
  • Descompresión: decodifica los datos comprimidos y restáuralos a su forma original para facilitar su uso.

El propósito de la compresión es reducir el espacio de almacenamiento que ocupan los datos.

Ejemplos de algoritmos crudos

Comprime el siguiente contenido de texto:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Los datos comprimidos usando un determinado algoritmo son:

compress:a:1062;b:10

Nota: Hay muchos escenarios de compresión específicos, por lo que el algoritmo de compresión será mucho más complejo. Lo anterior es solo un algoritmo prototipo.

¿La codificación es por compresión?

  • Sí. La llamada codificación consiste en convertir datos de un formulario a otro. El proceso de compresión pertenece al proceso de codificación y el proceso de descompresión pertenece al proceso de decodificación.

Algoritmos de compresión comunes: DEFLATE, JPEG, MP3, etc.

Picadillo

Convierta datos arbitrarios en datos dentro de un rango de tamaño específico (generalmente muy pequeño, como dentro de 256 bytes).

Función: Equivale a extraer información resumida de los datos, por lo que el uso principal es la huella digital .

Usos prácticos de Hash:

  • Verificación de unicidad , como el método en Java hashCode(). (¿Cómo reescribir el método hashCode? Coloque equals()cada variable utilizada para determinar la igualdad en el método hashCode()y juntas generen un número entero que evite colisiones tanto como sea posible)
  • Verificación de la integridad de los datos : después de descargar un archivo de Internet, puede confirmar si el archivo descargado está dañado comparando el valor hash del archivo (como MD5, SHA1). Si el valor hash del archivo descargado es consistente con el valor hash proporcionado por el proveedor del archivo, demuestra que el archivo descargado está intacto.
  • Búsqueda rápida como HashMap
  • Protección de la privacidad , cuando se deben exponer datos importantes, puede optar por exponer su valor Hash (como MD5) para garantizar la seguridad de los datos originales. Por ejemplo, al iniciar sesión en un sitio web, solo puede guardar el valor hash de la contraseña del usuario. Durante cada verificación de inicio de sesión, solo necesita comparar el valor hash de la contraseña ingresada con el valor hash guardado en la base de datos. No necesita saber la contraseña del usuario. De esta manera, cuando se roban datos del sitio web, no se robarán las contraseñas de los usuarios y la seguridad de otros sitios web se verá comprometida.

Supongo que te gusta

Origin blog.csdn.net/lyabc123456/article/details/133327300
Recomendado
Clasificación