Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Różnica między BINARY(16) a CHAR(32) podczas przechowywania MD5 w bazie danych

Obecnie tracisz połowę sumy kontrolnej używając BINARY(16) . Kiedy przechowujesz sumę kontrolną MD5 w BINARY(16) powinieneś przechowywać je jako dane binarne, nie zakodowane w systemie szesnastkowym. To znaczy:

INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));

Możesz użyć funkcji HEX, aby ponownie zakodować ją do postaci szesnastkowej, jeśli chcesz porównać ją z inną sumą kontrolną:

SELECT HEX(md5_binary) FROM test;

Zaletą używania BINARY do przechowywania sumy kontrolnej zamiast tekstu szesnastkowego jest to, że potrzebna jest połowa pamięci.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Left Join nie zwraca wszystkich wierszy

  2. MySQL:Policz unikalne pary wartości w wierszach

  3. Jak kaskadowo utrzymywać się przy użyciu JPA/EclipseLink

  4. Wyrafinowana wartość zwracana przez MySQL

  5. Nieudane przetwarzanie format-parameters za pomocą mysql.connector w Pythonie