The hashed password data type depends upon which hashing algorithm we are using. The hashing algorithm does not depends upon the input size because it produces a result of the same length. It gives the result in a series of hexadecimal digits, and we can reduce the hexadecimal digits by half with the help of UNHEX() function.
There are various algorithms and data types to store values.
MD5 − It can use char(32) or BINARY(16).
SHA-1 − It can use data type char(40) or BINARY(20).
Example of MD5
The following is an example −
mysql> select MD5('This is a hashed password');
Here is the output.
+----------------------------------+
| MD5('This is a hashed password') |
+----------------------------------+
| e9d4c42db40abbb4724a0047f7e91e67 |
+----------------------------------+
1 row in set (0.03 sec)
To know the length of the hashed password.
mysql> SELECT CHARACTER_LENGTH(MD5('This is a hashed password'));
+----------------------------------------------------+
| CHARACTER_LENGTH(MD5('This is a hashed password')) |
+----------------------------------------------------+
| 32 |
+----------------------------------------------------+
1 row in set (0.04 sec)
Example of SHA-1
mysql> select SHA1('This is a hashed password');
The following is the output.
+------------------------------------------+
| SHA1('This is a hashed password') |
+------------------------------------------+
| 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 |
+------------------------------------------+
1 row in set (0.00 sec)
We can know the length with the help of character_length() function.
mysql> SELECT CHARACTER_LENGTH(SHA1('This is a hashed password'));
The following is the output.
+-----------------------------------------------------+
| CHARACTER_LENGTH(SHA1('This is a hashed password')) |
+-----------------------------------------------------+
| 40 |
+-----------------------------------------------------+
1 row in set (0.00 sec)