Computer >> Máy Tính >  >> Lập trình >> MySQL

Loại dữ liệu nào để sử dụng cho trường mật khẩu băm trong MySQL?

Kiểu dữ liệu mật khẩu băm phụ thuộc vào thuật toán băm nào mà chúng tôi đang sử dụng. Thuật toán băm không phụ thuộc vào kích thước đầu vào vì nó tạo ra kết quả có cùng độ dài. Nó cho kết quả là một chuỗi các chữ số thập lục phân và chúng ta có thể giảm một nửa các chữ số thập lục phân với sự trợ giúp của hàm UNHEX ().

Có nhiều thuật toán và kiểu dữ liệu khác nhau để lưu trữ các giá trị.

  • MD5 - Nó có thể sử dụng char (32) hoặc BINARY (16).

  • SHA-1 - Nó có thể sử dụng kiểu dữ liệu char (40) hoặc BINARY (20).

Ví dụ về MD5

Sau đây là một ví dụ -

mysql> select MD5('This is a hashed password');

Đây là kết quả đầu ra.

+----------------------------------+
| MD5('This is a hashed password') |
+----------------------------------+
| e9d4c42db40abbb4724a0047f7e91e67 |
+----------------------------------+
1 row in set (0.03 sec)

Để biết độ dài của mật khẩu đã băm.

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)

Ví dụ về SHA-1

mysql> select SHA1('This is a hashed password');

Sau đây là kết quả.

+------------------------------------------+
| SHA1('This is a hashed password')        |
+------------------------------------------+
| 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 |
+------------------------------------------+
1 row in set (0.00 sec)

Chúng ta có thể biết độ dài với sự trợ giúp của hàm character_length ().

mysql>  SELECT CHARACTER_LENGTH(SHA1('This is a hashed password'));

Sau đây là kết quả.

+-----------------------------------------------------+
| CHARACTER_LENGTH(SHA1('This is a hashed password')) |
+-----------------------------------------------------+
|                                                  40 |
+-----------------------------------------------------+
1 row in set (0.00 sec)