Estoy trabajando en un formulario de registro donde necesito encriptar la contraseña, he escuchado que se me recomienda usar el cifrado Blowfish para contraseñas, ¿Cómo se implementa una encriptación blowfish usando PHP? función crypt()? También, tengo la intención de recuperar la contraseña después de iniciar la sesión.Uso de Blowfish para encriptación con PHP
Respuesta
La respuesta corta es utilizar crypt
con una sal comenzando con los personajes $ 2a $, dos dígitos cuestan parámetro, $, y 22 dígitos del alfabeto ./0-9A-Za-z. Eso solo funciona en sistemas que admiten el algoritmo de cifrado Blowfish. Sin embargo, PHP 5.3 lo implementa de forma nativa. Ver PHP manual — crypt para más detalles.
Ejemplo:
crypt('rasmuslerdorf', '$2a$07$somesillystringforsalt')
La cadena de sal activa el algoritmo apropiado. El parámetro de dos dígitos es el logaritmo de base 2 del recuento de iteraciones para el algoritmo de hash subyacente basado en Blowfish y debe estar dentro del rango [04 – 31]. En el ejemplo 07 le dice al algoritmo que use 2 o 128 iteraciones. Cuanto más alto sea este número, más tiempo llevará ejecutar, PERO, en el contexto de las contraseñas de hashing user, que es GOOD.
This answer to a similar question explica con más detalle qué es BCrypt, cómo se relaciona con Blowfish, y por qué debería usarlo. Hay muchos otros related topics here on Stack Overflow.
phpass es un excelente fácil de usar marco de hash, la contraseña que funciona en todos los sistemas, utilizando Blowfish si vale ’ s apoyaron, y cayendo de nuevo a otros algoritmos si ’ no lo es.
Nunca debe necesitar blowfish para encriptar una contraseña como esta. El formulario de registro debe ser a través de HTTPS, que manejará la defensa contra un atacante en el cable. La contraseña debe ser hash (nunca cifrado). bcrypt es una buena función hash de contraseña basada en blowfish. Pero hay muchas publicaciones relacionadas con el almacenamiento seguro de contraseñas en SO.
- 1. Encriptación con PHP Phar
- 2. Uso del cifrado Blowfish dentro de .NET
- 3. Contraseña de autenticación encriptada en PHP usando Blowfish con Ruby
- 4. Encriptación simple en PHP
- 5. Costo de Blowfish contra tiempo
- 6. Encriptación bidireccional en PHP
- 7. Cifrado con BlowFish en Java
- 8. Método de encriptación implementado para php y java?
- 9. Encriptación: ¿uso del vector de inicialización frente a la clave?
- 10. Encriptación/descifrado RSA compatible con Javascript y PHP
- 11. Encriptación/descifrado con dos teclas?
- 12. Cómo crear claves de encriptación para algoritmos de encriptación?
- 13. implementación Blowfish objetivo-c
- 14. Encriptación AES Java -> PHP -> Java
- 15. Cifrado de Blowfish en android
- 16. Encriptación de cadena con JASYPT - Java
- 17. Encriptación AES para un NSString?
- 18. Encriptación de una clave privada con BouncyCastle
- 19. Uso de una DLL con PHP para Dummies
- 20. Cómo usar BouncyCastle en C# para el hash unidireccional Blowfish?
- 21. ¿Encriptación del sistema de archivos para iOS?
- 22. Encriptación de certificado SSL contra encriptación de cifrado
- 23. exportación de encriptación de AppStore iPhone para uso de openssl - ¿Cómo?
- 24. Uso de X-Sendfile con Apache/PHP
- 25. Encriptación simple de Javascript, descifrado de PHP con la clave secreta compartida
- 26. Uso del swiftmailer de php con gmail
- 27. Encriptación compatible entre C# y PHP, ColdFusion, Ruby, Python
- 28. Encriptación con clave privada RSA en Java
- 29. Haciendo uso de C++ para acelerar PHP
- 30. Uso posible de PHP PHP
Eche un vistazo a [esto] (http://www.chilkatsoft.com/p/php_blowfish.asp). –
No debe "encriptar" las contraseñas, pero use una función de hash unidireccional. Ver: [¿Cómo se usa bcrypt para contraseñas hash en PHP?] (Http://stackoverflow.com/q/4795385/911182) – Herbert
Lea también: [¿Cómo puedo almacenar las contraseñas de mis usuarios de forma segura?] (Http://stackoverflow.com/questions/1581610/how-can-i-store-my-users-passwords-safely/1581919#1581919) – Jacco