Algoritmos de cifrado comunes como Java MD5 y SHA256

prefacio

Cuando estamos desarrollando javaun proyecto, en el modo de separación de la interfaz front-end y back-end, la información de la interfaz debe cifrarse, la autenticación de la firma y la información de inicio de sesión y las contraseñas del usuario también necesitan el cifrado de datos. 信息加密Es una tecnología que casi todos los proyectos necesitan usar ahora. Los algoritmos de cifrado se usan a menudo en escenarios como la autenticación de identidad, el inicio de sesión único, la comunicación de información y las transacciones de pago. El llamado algoritmo de cifrado consiste en transformar el texto sin formato original en a en texto cifrado.

  1. BASEEstrictamente hablando, pertenece al formato de codificación, no al algoritmo de cifrado
    MD(algoritmo de resumen de mensaje, algoritmo de resumen de información)
    SHA(algoritmo hash seguro, algoritmo hash seguro)
    HMAC(código de autenticación de mensaje hash, código de autenticación de mensaje hash)

  2. En el algoritmo de encriptación SHA1、SHA-224、SHA-256、SHA-384, y SHA-512, entre ellos SHA-224、SHA-256、SHA-384, y SHA-512podemos referirnos colectivamente SHA2al algoritmo de encriptación

  3. SHALa seguridad del algoritmo de cifrado es MD5mayor que SHA2la del algoritmo de cifrado SHA1. El SHAsiguiente número indica la longitud de la cadena cifrada y SHA1se generará un 160resumen de información de un bit de forma predeterminada.

MD5

MD5 Message Digest Algorithm (inglés: MD5 Message-Digest Algorithm), una función hash criptográfica ampliamente utilizada, puede generar un valor hash (valor hash) de 128 bits (16 bytes), utilizado para garantizar la transmisión de información Completamente consistente.

El algoritmo MD5 tiene las siguientes características:

  1. Compresibilidad: independientemente de la longitud de los datos, el valor MD5 calculado tiene la misma longitud

  2. Facilidad de cálculo: fácil de calcular el valor MD5 a partir de los datos originales

  3. Resistente a la modificación: incluso si se modifica un byte, el valor MD5 calculado será muy diferente

  4. Anticolisión: conociendo los datos y el valor MD5, existe una pequeña probabilidad de encontrar los datos originales con el mismo valor MD5

Para ser precisos, MD5 no es un algoritmo de cifrado, sino un algoritmo de resumen MD5 puede generar texto sin formato como una cadena de 128 bits, que no se puede convertir en texto sin formato. Algunos sitios web de descifrado MD5 en Internet solo guardan las cadenas md5 correspondientes a algunas cadenas y descubren el texto original a través de las cadenas md5 registradas.

En los diversos proyectos que he realizado, a menudo veo la escena en la que se usa MD5 para el cifrado. Por ejemplo, para el cifrado de contraseñas, después de generar una contraseña, use MD5 para generar una cadena de 128 bits y guárdela en la base de datos. Después de que el usuario ingrese la contraseña, la cadena MD5 también se genera primero y luego se compara en la base de datos. Por lo tanto, no podemos obtener la contraseña original cuando recuperamos la contraseña, porque la contraseña de texto sin formato no se guardará en absoluto.

serie SHA

  1. Secure Hash Algorithm (inglés: Secure Hash Algorithm, abreviado como SHA) es una familia de funciones hash criptográficas y es un algoritmo hash seguro certificado por FIPS. Algoritmo que puede calcular una cadena de longitud fija (también conocida como resumen de mensaje) correspondiente a un mensaje digital. Y si los mensajes de entrada son diferentes, existe una alta probabilidad de que correspondan a cadenas diferentes.
  2. Al final de la conferencia CRYPTO el 17 de agosto de 2005, Wang Xiaoyun, Yao Qizhi y Yao Chufeng publicaron una vez más un método de ataque SHA-1 más eficiente, que puede encontrar colisiones dentro de 2 a la potencia de 63 de complejidad computacional.

Es decir, SHA-1el algoritmo de encriptación tiene la posibilidad de colisión, aunque es muy pequeña.

HMAC

  1. HMAC es la abreviatura del código de autenticación de mensajes de operación hash relacionado con la clave (Código de autenticación de mensajes basado en hash), que fue propuesto por H. Krawezyk, M. Bellare, R. Canetti en 1996 basado en la función Hash y la clave El método de autenticación, publicado como RFC2104 en 1997 y SSLampliamente utilizado en IPSec y otros protocolos de red como , ahora se ha convertido en el estándar de seguridad de Internet de facto. Se puede combinar con cualquier función hash iterativa.
  2. El algoritmo HMAC es más como un tipo 加密算法, presenta 密钥, su seguridad ya no depende completamente del algoritmo Hash utilizado

Si desea usarlo 加密, se recomienda utilizar los algoritmos SHA256, SHA384, SHA512 y HMAC-SHA256, HMAC-SHA384, HMAC-SHA512.

Algoritmo de cifrado simétrico

  1. El algoritmo de cifrado simétrico es un algoritmo anterior y se utiliza la misma clave para el cifrado y descifrado de datos, lo que provoca dificultades en la gestión de claves. Los algoritmos de cifrado simétrico comunes incluyen DES、3DES、AES128、AES192、AES256(el JDK instalado de forma predeterminada aún no es compatible con AES256, debe instalar el parche jce correspondiente para actualizar jce1.7, jce1.8). El número detrás de AES representa la longitud de la clave. La seguridad del algoritmo de cifrado simétrico es relativamente baja y el escenario más aplicable es el cifrado y descifrado en el entorno de la intranet.

  2. El llamado cifrado simétrico significa que se puede pasar después de ser cifrado por una clave 密钥解密. Cierta empresa estatal con la que me he puesto en contacto ahora está AESimplementando el inicio de sesión integrado internamente. El sistema de terceros proporciona una interfaz para recibir información del usuario. La empresa estatal encripta la información del usuario con AES y la transmite al sistema de terceros a través de esta interfaz, y el sistema de terceros realiza la operación de inicio de sesión por sí mismo. Cabe señalar aquí que la clave es muy importante, si 密钥丢失existe 信息泄漏un riesgo.

sal de cifrado

  1. La sal cifrada también es un concepto que se escucha a menudo. Salt es una cadena aleatoria que se usa para concatenar con nuestra cadena cifrada para el cifrado.

  2. La salazón se utiliza principalmente para proporcionar seguridad a las cadenas cifradas. Si hay una cadena encriptada después de agregar sal, el hacker usa la cadena encriptada a través de ciertos medios, y el texto sin formato que obtiene no es la cadena antes de que la encriptemos, sino la cadena combinada con la cadena antes del cifrado y la sal. la seguridad de la cadena.

sitio web encriptado en línea

  1. Herramientas para webmasters
  2. cifrado en línea
  3. Java desarrolla clases de herramientas de cifrado y descifrado para ver mi artículo

Resumir

Algunos algoritmos de cifrado recomendados son:

  1. Cifrado irreversible: SHA256, SHA384, SHA512 y HMAC-SHA256, HMAC-SHA384, HMAC-SHA512

  2. Algoritmo de cifrado simétrico: AES, 3DES

  3. Algoritmo de cifrado asimétrico: RSA

referencia

  1. Algoritmos de cifrado de uso común
  2. Análisis de los cinco algoritmos de cifrado de Java más utilizados
  3. https://juejin.cn/post/6844903638117122056#heading-3

Supongo que te gusta

Origin blog.csdn.net/u011738045/article/details/120551399
Recomendado
Clasificación