Diez métodos de cifrado de contraseñas más comunes
1. Hashing de claves
Utilice MD5 o SHA1 y otros algoritmos de hash para cifrar texto sin formato. Estrictamente hablando, MD5 no es un algoritmo de cifrado, sino un algoritmo de resumen. No importa qué tan larga sea la entrada, MD5 generará un valor hash de 128 bits (16 bytes). SHA1 también es un algoritmo de resumen de mensajes popular que genera un valor hash de 160 bits (20 bytes) llamado resumen de mensajes. En comparación con SHA1, MD5 es menos seguro pero más rápido; SHA1 es más seguro que MD5 pero más lento.
2. Cifrado simétrico
Utilizando el método de cifrado de un criptosistema de clave única, se puede utilizar la misma clave para cifrar y descifrar información al mismo tiempo. llamado cifrado simétrico. Los algoritmos comúnmente utilizados en algoritmos de cifrado simétrico incluyen: DES, 3DES, TDEA, Blowfish, RC2, RC4, RC5, IDEA, SKIPJACK, etc.
3. Cifrado asimétrico
El algoritmo de cifrado asimétrico es un método de clave secreta que requiere dos claves para el cifrado y el descifrado. Estas dos claves son la clave pública y la clave privada. La clave pública y la clave privada son un par. Si la clave pública se utiliza para cifrar datos, solo se puede descifrar con la clave privada correspondiente. Los algoritmos de cifrado asimétrico incluyen: RSA, Elgamal, algoritmo de mochila, Rabin, D-H, ECC (algoritmo de cifrado de curva elíptica).
4. Firma digital
La firma digital (también conocida como firma digital de clave pública) es una cadena digital que solo puede ser generada por el remitente de la información y no puede ser falsificada por otros. Esta cadena digital también es una prueba efectiva de la autenticidad de la información enviada por el remitente de la información. Es un método de autenticación de información digital similar a una firma física ordinaria escrita en papel, pero implementado utilizando tecnología en el campo del cifrado de clave pública.
5. Guardar directamente en texto sin cifrar
Al principio, existían muchas prácticas de este tipo. Por ejemplo, si la contraseña establecida por el usuario es "123", "123". Se guardará directamente en la base de datos. Este es el método más común para guardar y también el más inseguro. Pero, de hecho, muchas empresas de Internet pueden adoptar este enfoque.
6. Utilice algoritmos HASH unidireccionales como MD5 y SHA1 para proteger las contraseñas.
Después de usar estos algoritmos, la contraseña original no se puede restaurar mediante cálculo y la implementación es relativamente simple. Por lo tanto, muchas empresas de Internet utilizan este método para guardar contraseñas de usuario antes como un método relativamente seguro, pero con el auge de la tecnología de tablas Rainbow, se pueden crear tablas Rainbow para buscar y descifrar tablas. Este método ahora es muy inseguro.
7. Algoritmo HASH unidireccional especial
Dado que el algoritmo HASH unidireccional ya no es seguro para proteger contraseñas, algunas empresas han agregado sal y HASH múltiple y otras extensiones, estas. Los métodos pueden aumentar la dificultad de descifrado hasta cierto punto. Para el algoritmo HASH con una "sal fija", es necesario proteger la "sal" para que no se filtre, lo que encontrará el mismo problema que "proteger la clave simétrica". una vez que se filtra la "sal", la tabla del arco iris se puede restablecer en función de la "sal" para el craqueo. Para múltiples HASH, solo aumenta el tiempo de craqueo y no hay ninguna mejora esencial.
8.PBKDF2
El principio de este algoritmo es aproximadamente equivalente a agregar sal aleatoria al algoritmo HASH y realizar múltiples operaciones HASH. La sal aleatoria aumenta en gran medida la dificultad de crear un arco iris. table. y múltiples HASH también aumentan en gran medida la dificultad de creación y descifrado de tablas.
9. BCrypt
BCrypt se creó en 1999 y es mejor que PBKDF2 en la lucha contra GPU/ASIC, pero todavía no recomiendo su uso en sistemas nuevos porque. no ocupa un lugar destacado en el análisis del modelo de amenaza del craqueo fuera de línea. ?
10. SCrypt
SCrypt es una mejor opción hoy en día: mejor diseñado que BCrypt (especialmente en lo que respecta a la memoria) y ha estado trabajando en este campo durante 10 años.
Por otro lado, también se usa en muchas criptomonedas y tenemos algún hardware (incluidos FPGA y ASIC) que puede implementarlo. Aunque se utilizan específicamente para la minería, también pueden reutilizarse para el craqueo.