Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 해시된 비밀번호 필드에 사용할 데이터 유형은 무엇입니까?

<시간/>

해시된 암호 데이터 유형은 우리가 사용하는 해시 알고리즘에 따라 다릅니다. 해싱 알고리즘은 동일한 길이의 결과를 생성하기 때문에 입력 크기에 의존하지 않습니다. 결과는 일련의 16진수로 표시되며 UNHEX() 함수를 사용하여 16진수를 절반으로 줄일 수 있습니다.

값을 저장하는 다양한 알고리즘과 데이터 유형이 있습니다.

  • MD5 − char(32) 또는 BINARY(16)를 사용할 수 있습니다.

  • SHA-1 − 데이터 유형 char(40) 또는 BINARY(20)를 사용할 수 있습니다.

MD5의 예

다음은 예입니다 -

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

다음은 출력입니다.

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

해시된 비밀번호의 길이를 알기 위해.

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)

SHA-1의 예

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

다음은 출력입니다.

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

character_length() 함수를 사용하여 길이를 알 수 있습니다.

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

다음은 출력입니다.

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