Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/08/2011, 11:50
Henkka
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años
Puntos: 14
Respuesta: Actualizar datos a md5

Para pasar una columna a MD5 como texto, debe ser capaz de almacenar 32 caracteres. En caso de querer almacenarlo en binario hay que utilizar HEX() y UNHEX().

Si la columna tiene una longitud menor de 32, primero habrá que alterar su longitud a 32 y luego convertir a MD5. En caso que la longitud sea mayor a 32, primero habrá que convertir a MD5 y luego alterar la longitud. Esto es para no perder pedazos ni de la contraseña ni del MD5.

Para convertir todas las filas de manera automática

Código MySQL:
Ver original
  1. mysql> DESCRIBE passwords;
  2. +----------+-------------+------+-----+---------+-------+
  3. | Field    | Type        | Null | Key | Default | Extra |
  4. +----------+-------------+------+-----+---------+-------+
  5. | password | varchar(32) | YES  |     | NULL    |       |
  6. +----------+-------------+------+-----+---------+-------+
  7.  
  8. mysql> SELECT * FROM passwords;
  9. +----------------+
  10. | password       |
  11. +----------------+
  12. | pass123        |
  13. | contraseña123  |
  14. +----------------+
  15.  
  16. mysql> UPDATE passwords SET password = MD5(password);
  17. Query OK, 2 rows affected
  18. Rows matched: 2  Changed: 2  Warnings: 0
  19.  
  20. mysql> SELECT * FROM passwords;
  21. +----------------------------------+
  22. | password                         |
  23. +----------------------------------+
  24. | 32250170a0dca92d53ec9624f336ca24 |
  25. | 014436b6640304b2cfad8a43f4aaad1a |
  26. +----------------------------------+

En caso de querer utilizar un salt, habría que concatenarlo con el nombre de la columna dentro de MD5().