Databases/mariaDB & Mysql

mysql Hash 사용기(SHA)

logthink 2019. 1. 2. 19:51

[1]  Database 암호화 및 압축 함수


정리에 앞서 mysql에서 hash사용 example 먼저 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mysql> select hex(aes_encrypt('namki''key'));
+----------------------------------+
| hex(aes_encrypt('namki''key'))    |
+----------------------------------+
| F3585A4714643395A5C0CB31AD48E2D6 |
+----------------------------------+
1 row in set (0.00 sec)
 
mysql> select aes_decrypt(unhex('F3585A4714643395A5C0CB31AD48E2D6'), 'key');
+---------------------------------------------------------------+
| aes_decrypt(unhex('F3585A4714643395A5C0CB31AD48E2D6'), 'key'|
+---------------------------------------------------------------+
| namki                                                            |
+---------------------------------------------------------------+
1 row in set (0.00 sec)
cs

첫 번째는 aes_encrypt 함수를 사용하여 "str", "key"를 같이 암호화 한 결과이며,

두 번째는 "str", "key"를 unhex하여 원본 데이터를 출력한 화면이다.

1
2
3
4
5
6
7
mysql> select hex(aes_encrypt(SHA2('namki',256), 'key'));
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| hex(aes_encrypt(SHA2('namki',256), 'key'))                                                                                                                       |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 3534984F87252E1971C1D2AF770ABDC61814217A594B90E24C497BF0B3C32C152962F7CEC4E7BF8C3CFC87A622DE4322F942E9BA1C5E49516D4CD51DC512687DC717530F41F320757B4AA1BFAF11C42E |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
cs
1
2
3
4
5
6
7
mysql> select aes_decrypt(unhex('{ hash data }'), 'key');
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| aes_decrypt(unhex(SHA2('{ hash data }'256)), 'key'|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| a54e780955d4fe430f6a89a0608f5240d6b828dd8765744893d6e3b2264a4177                                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
cs

이번에는 sha2 함수를 이용해 256비트까지 출력해보았다. 또한, aes_decrypt에서는 only-hash data만 type str으로 넣어주면 해석된다.


표 암호화 기능

이름기술
AES_DECRYPT()AES를 사용하여 해독
AES_ENCRYPT()AES를 사용하여 암호화
ASYMMETRIC_DECRYPT()개인 또는 공개 키를 사용하여 암호문을 해독합니다.
ASYMMETRIC_DERIVE()비대칭 키로부터 대칭 키 유도
ASYMMETRIC_ENCRYPT()개인 또는 공개 키를 사용하여 일반 텍스트 암호화
ASYMMETRIC_SIGN()다이제스트에서 서명 생성
ASYMMETRIC_VERIFY()서명이 다이제스트와 일치하는지 확인하십시오.
COMPRESS()결과를 바이너리 문자열로 반환
CREATE_ASYMMETRIC_PRIV_KEY()개인 키 만들기
CREATE_ASYMMETRIC_PUB_KEY()공개 키 만들기
CREATE_DH_PARAMETERS()공유 DH 비밀 생성
CREATE_DIGEST()문자열에서 다이제스트 생성
DECODE()ENCODE ()를 사용하여 암호화 된 문자열을 디코딩합니다.
DES_DECRYPT()문자열 해독
DES_ENCRYPT()문자열 암호화
ENCODE()문자열 인코딩
ENCRYPT()문자열 암호화
MD5()MD5 체크섬 계산
PASSWORD()암호 문자열 계산 및 반환
RANDOM_BYTES()임의의 바이트 벡터를 반환합니다.
SHA1(), SHA()SHA-1 160 비트 체크섬 계산
SHA2()SHA-2 체크섬 계산
STATEMENT_DIGEST()명령문 다이제스트 해시 값 계산
STATEMENT_DIGEST_TEXT()정규화 된 명령문 다이제스트 계산
UNCOMPRESS()압축 된 문자열 압축 해제
UNCOMPRESSED_LENGTH()압축 전의 캐릭터 라인의 길이를 돌려줍니다.
VALIDATE_PASSWORD_STRENGTH()암호의 강도 결정


많은 암호화 및 압축 함수는 결과에 임의의 바이트 값이 포함될 수있는 문자열을 반환합니다. 이러한 결과를 저장하려면 VARBINARY또는 BLOB2 진. 자열 데이터 유형 의 컬럼을 사용하십시오 . 이렇게하면 이진이 아닌 문자열 데이터 형식 (사용하는 경우 발생할 수 등의 데이터 값을 변경 할 후행 공백 제거 또는 문자 집합 변환, 잠재적 인 문제를 피할 것 CHAR, VARCHAR, TEXT)를.

: 일부 암호화 기능은 ASCII 문자의 문자열을 반환 MD5(), SHA(), SHA1(), SHA2(), STATEMENT_DIGEST(),를 STATEMENT_DIGEST_TEXT(). 반환 값은 character_set_connection collation_connection시스템 변수에 의해 결정되는 문자 집합과 데이터 정렬을 갖는 문자열입니다 . 문자 집합이 아닌 한 이진이 아닌 문자열입니다 binary.

응용 프로그램에서와 같은 함수의 값을 저장 MD5()하거나 SHA1()16 진수 문자열을 반환하는 경우 16 진 표현을 사용하여 2 진수로 변환 UNHEX()하고 결과를 열에 저장하면 보다 효율적인 저장 및 비교를 얻을 수 있습니다 . 각 쌍의 16 진수에는 2 진수 형식의 1 바이트가 필요하므로 값은 16 진수 문자열의 길이에 따라 다릅니다. 값의 경우 16이고 값의 경우 20입니다 . 를 들어 , 그 결과 원하는 비트 길이를 지정하는 인수에 따라 28부터 32까지의 범위이다. BINARY(N)NNMD5()SHA1()SHA2()N

CHAR열에 16 진수 문자열을 저장하는 데 대한 크기 패널티  utf8문자 집합 을 사용하는 열에 값이 저장되는 경우 (각 문자가 4 바이트 를 사용하는 경우) 적어도 두 번 입니다. 문자열을 저장하면 큰 값과 문자 집합 조합 규칙을 고려해야하므로 비교가 더 느려집니다.

응용 프로그램이 MD5()문자열 값을 CHAR(32)열에 저장한다고 가정합니다 .

CREATE TABLE md5_tbl (md5_val CHAR(32), ...);
INSERT INTO md5_tbl (md5_val, ...) VALUES(MD5('abcdef'), ...);

더 컴팩트 한 형태로 진수 문자열로 변환 사용하도록 응용 프로그램을 수정 UNHEX()하고 BINARY(16)다음과 같이 대신 :

CREATE TABLE md5_tbl (md5_val BINARY(16), ...);
INSERT INTO md5_tbl (md5_val, ...) VALUES(UNHEX(MD5('abcdef')), ...);

응용 프로그램은 해싱 함수가 두 개의 다른 입력 값에 대해 동일한 값을 생성하는 아주 드문 경우를 처리 할 수 ​​있도록 준비해야합니다. 충돌을 탐지 할 수있는 한 가지 방법은 해시 열을 기본 키로 만드는 것입니다.

노트

MD5 및 SHA-1 알고리즘에 대한 악용 사례가 알려졌습니다. 이 절에 설명 된 다른 단방향 암호화 기능 (예 :)을 대신 사용해보십시오 SHA2().

주의

암호화 기능에 대한 인수로 제공된 암호 또는 기타 민감한 값은 SSL 연결이 사용되지 않는 한 일반 텍스트로 MySQL 서버로 보내집니다. 또한 이러한 값은 작성된 MySQL 로그에 나타납니다. 이러한 유형의 노출을 피하기 위해 응용 프로그램은 서버로 보내기 전에 클라이언트 측에서 중요한 값을 암호화 할 수 있습니다. 암호화 키에도 동일한 고려 사항이 적용됩니다. 이들을 노출시키지 않기 위해 응용 프로그램은 저장 프로 시저를 사용하여 서버 측에서 값을 암호화하고 암호 해독 할 수 있습니다.

  • AES_DECRYPT(crypt_str,key_str[,init_vector])

    이 기능은 공식 AES (Advanced Encryption Standard) 알고리즘을 사용하여 데이터를 암호 해독합니다. 자세한 내용은의 설명을 참조하십시오 AES_ENCRYPT().

    선택적 초기화 벡터 인수 init_vector. 사용 AES_DECRYPT()하는 문은 명령문 기반 복제에 안전하지 않습니다.

  • AES_ENCRYPT(str,key_str[,init_vector])

    AES_ENCRYPT() AES_DECRYPT()암호화 및 공식 AES 이전으로 알려진 (고급 암호화 표준) 알고리즘을 사용하여 데이터의 암호 해독 구현 " Rijndael을합니다. "AES 표준은 다양한 키 길이를 허용합니다. 기본적으로이 함수는 128 비트 키 길이의 AES를 구현합니다. 나중에 설명하는 것처럼 196 또는 256 비트의 키 길이를 사용할 수 있습니다. 키 길이는 성능과 보안 사이의 균형입니다.

    AES_ENCRYPT()str 문자열을 사용하여 key_str문자열을 암호화하고 암호화 된 출력을 포함하는 2 진 문자열을 리턴합니다.  AES_DECRYPT()문자열을 crypt_str사용하여 암호화 된 문자열  암호 해독하고 key_str원래 일반 텍스트 문자열을 반환합니다. 함수 인수가 false이면 NULL함수가 반환 NULL됩니다.

    str crypt_str인수는 임의의 길이 일 수 있고, 패딩을 자동으로 추가 str는 예컨대 AES 등의 블록 - 기반의 알고리즘에서 요구 한 블록의 배수가되도록. 이 패딩은 AES_DECRYPT()함수에 의해 자동으로 제거됩니다 . 길이는 crypt_str다음 공식을 사용하여 계산할 수 있습니다.

    16 * (trunc(string_length / 16) + 1)

    128 비트의 키 길이의 경우, key_str인수에 키를 전달하는 가장 안전한 방법 은 진정한 랜덤 128 비트 값을 생성하여 이진 값으로 전달하는 것입니다. 예 :

    INSERT INTO t
    VALUES (1,AES_ENCRYPT('text',UNHEX('F3229A0B371ED2D9441B830D21A390C3')));

    패스 프레이즈는 패스 프레이즈를 해싱하여 AES 키를 생성하는 데 사용할 수 있습니다. 예 :

    INSERT INTO t
    VALUES (1,AES_ENCRYPT('text', UNHEX(SHA2('My secret passphrase',512))));

    암호 나 암호를 직접 전달하지 말고 crypt_str해시하십시오. 이 문서의 이전 버전에서는 이전 방법을 제안했지만, 여기에 표시된 예는보다 안전하기 때문에 더 이상 권장되지 않습니다.

    경우 AES_DECRYPT()유효하지 않은 데이터 또는 잘못된 패딩을 감지, 그것은 반환합니다 NULL. 그러나 입력 데이터 또는 키가 유효하지 않은 경우 AES_DECRYPT() NULL값 (가비지 일 수도 있음) 을 반환 할 수 있습니다.

    AES_ENCRYPT() AES_DECRYPT()블록 암호화 모드의 제어를 허용하고 옵션 걸릴 init_vector초기화 벡터 인수를 :

    • block_encryption_mode 시스템 변수 블록 기반 암호화 알고리즘의 모드를 제어한다. 기본값 aes-128-ecb은 128 비트의 키 길이와 ECB 모드를 사용하여 암호화를 의미합니다. 이 변수의 허용 값에 ​​대한 설명은 5.1.8 절. "서버 시스템 변수" 에서 참조하십시오 .

    • 선택적 init_vector 인수는이를 요구하는 블록 암호화 모드에 대한 초기화 벡터를 제공합니다.

    선택적 init_vector인수 가 필요한 모드의 경우 16 바이트 이상이어야합니다 (16을 초과하는 바이트는 무시됩니다). init_vector누락 된 경우 오류가 발생합니다 .

    요구하지 않는 모드의 init_vector경우는 무시되고 경고가 생성되면 지정됩니다.

    초기화 벡터에 사용할 임의의 바이트 문자열을 호출하여 생성 할 수 있습니다 RANDOM_BYTES(16). 초기화 벡터가 필요한 암호화 모드의 경우 암호화 및 암호 해독에 동일한 벡터를 사용해야합니다.

    mysql> SET block_encryption_mode = 'aes-256-cbc';
    mysql> SET @key_str = SHA2('My secret passphrase',512);
    mysql> SET @init_vector = RANDOM_BYTES(16);
    mysql> SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);
    mysql> SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);
    +-----------------------------------------------+
    | AES_DECRYPT(@crypt_str,@key_str,@init_vector) |
    +-----------------------------------------------+
    | text                                          |
    +-----------------------------------------------+

    다음 표는 허용 된 각 블록 암호화 모드,이를 지원하는 SSL 라이브러리 및 초기화 벡터 인수가 필요한지 여부를 나열합니다.

    암호화 모드 차단모드를 지원하는 SSL 라이브러리초기화 벡터 필요
    ECBOpenSSL, wolfSSL아니
    CBCOpenSSL, wolfSSL
    CFB1OpenSSL
    CFB8OpenSSL
    CFB128OpenSSL
    OFBOpenSSL

    명령문 기반 복제 를 사용 AES_ENCRYPT()하거나 AES_DECRYPT()안전하지 않은 명령문.

  • COMPRESS(string_to_compress)

    문자열을 압축하고 결과를 2 진 문자열로 리턴합니다. 이 함수는 MySQL이와 같은 압축 라이브러리로 컴파일 된 것을 요구한다 zlib. 그렇지 않으면 반환 값은 항상 NULL입니다. 압축 된 문자열은로 압축을 풀 수 있습니다 UNCOMPRESS().

    mysql> SELECT LENGTH(COMPRESS(REPEAT('a',1000)));
            -> 21
    mysql> SELECT LENGTH(COMPRESS(''));
            -> 0
    mysql> SELECT LENGTH(COMPRESS('a'));
            -> 13
    mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16)));
            -> 15

    압축 된 문자열 내용은 다음과 같은 방식으로 저장됩니다.

    • 빈 문자열은 빈 문자열로 저장됩니다.

    • 비어 있지 않은 문자열은 4 바이트 길이의 압축되지 않은 문자열 (낮은 바이트부터)과 압축 된 문자열로 저장됩니다. 문자열이 공백으로 끝나면 .결과를 a CHAR또는 VARCHARcolumn에 저장해야하는 경우 endspace 트리밍 문제를 방지하기 위해 여분의 문자가 추가 됩니다. (단, 이진이 아닌 문자열 데이터 유형 등의 사용CHAR또는 VARCHAR압축 된 문자열을 저장할는 문자 집합 변환이 발생할 수 있기 때문에 어쨌든 사용하지 않는 것이 좋습니다. 용도 VARBINARY BLOB대신 이진 문자열 열.)

  • DECODE(crypt_str,pass_str)

    이 함수는 MySQL 8.0.3에서 삭제되었다.

    사용을 고려 AES_ENCRYPT() 하고 AES_DECRYPT()대신.

  • DES_DECRYPT(crypt_str[,key_str])

    이 함수는 MySQL 8.0.3에서 삭제되었다.

    사용을 고려 AES_ENCRYPT() 하고 AES_DECRYPT()대신.

  • DES_ENCRYPT(str[,{key_num|key_str}])

    이 함수는 MySQL 8.0.3에서 삭제되었다.

    사용을 고려 AES_ENCRYPT() 하고 AES_DECRYPT()대신.

  • ENCODE(str,pass_str)

    이 함수는 MySQL 8.0.3에서 삭제되었다.

    사용을 고려 AES_ENCRYPT() 하고 AES_DECRYPT()대신.

  • ENCRYPT(str[,salt])

    이 함수는 MySQL 8.0.3에서 삭제되었다. 단방향 해싱의 경우 SHA2()대신 사용하는 것이 좋습니다.

  • MD5(str)

    문자열에 대한 MD5 128 비트 체크섬을 계산합니다. 이 값은 32 자리의 16 진수 문자열 또는 NULL인수가있는 경우 반환됩니다 NULL. 반환 값은 예를 들어 해시 키로 사용할 수 있습니다. 해시 값을 효율적으로 저장하는 방법은이 섹션의 시작 부분에있는 노트를 참조하십시오.

    반환 값은 연결 문자 집합의 문자열입니다.

    FIPS 모드가 활성화 된 경우 MD5()반환 NULL됩니다. 6.6 절 . "FIPS 지원"을 참조하십시오 .

    mysql> SELECT MD5('testing');
            -> 'ae2b1fca515949e5d54fb22b8ed95575'

    이것은 " RSA Data Security, Inc. MD5 메시지 다이제스트 알고리즘"입니다. "

    이 섹션의 시작 부분에있는 MD5 알고리즘 관련 참고 사항을 참조하십시오.

  • PASSWORD(str)

    이 함수는 MySQL 8.0.11에서 삭제되었다.

  • RANDOM_BYTES(len)

    이 함수는 lenSSL 라이브러리의 난수 생성기를 사용하여 생성 된 임의의 바이트 의 이진 문자열을 반환합니다 . len1 ~ 1024 범위의 허용 된 값입니다 . 해당 범위를 벗어난 값의 RANDOM_BYTES()경우 경고를 생성하고 반환합니다 NULL.

    RANDOM_BYTES()함수 AES_DECRYPT() AES_ENCRYPT()함수에 대한 초기화 벡터를 제공하는 데 사용할 수 있습니다 . 해당 컨텍스트에서 사용 len하려면 16 이상이어야합니다. 더 큰 값은 허용되지만 16을 초과하는 바이트는 무시됩니다.

    RANDOM_BYTES()임의의 값을 생성하여 결과를 비 결정적으로 만듭니다. 따라서이 함수를 사용하는 문은 문 기반 복제에 안전하지 않습니다.

  • SHA1(str), SHA(str)

    RFC 3174 (Secure Hash Algorithm)에 설명 된대로 문자열에 대한 SHA-1 160 비트 체크섬을 계산합니다. 이 값은 40 개의 16 진수 문자열 또는 NULL인수가있는 경우반환됩니다 NULL. 이 함수의 가능한 용도 중 하나는 해시 키입니다. 해시 값을 효율적으로 저장하는 방법은이 섹션의 시작 부분에있는 노트를 참조하십시오. SHA()동의어입니다 SHA1().

    반환 값은 연결 문자 집합의 문자열입니다.

    mysql> SELECT SHA1('abc');
            -> 'a9993e364706816aba3e25717850c26c9cd0d89d'

    SHA1()암호 학적으로 더 안전한 것으로 간주 될 수 있습니다 MD5(). 그러나이 섹션의 시작 부분에있는 MD5 및 SHA-1 알고리즘에 대한 참고 사항을 참조하십시오.

  • SHA2(str, hash_length)

    SHA-2 계열의 해시 함수 (SHA-224, SHA-256, SHA-384 및 SHA-512)를 계산합니다. 첫 번째 인수는 해시 할 일반 텍스트 문자열입니다. 두 번째 인수는 결과의 원하는 비트 길이를 나타내며 값은 224, 256, 384, 512 또는 0 (256과 동일)이어야합니다. 인수가 하나 NULL이거나 해시 길이가 허용되는 값 중 하나가 아니면 반환 값은NULL입니다. 그렇지 않으면 함수 결과는 원하는 비트 수를 포함하는 해시 값입니다. 해시 값을 효율적으로 저장하는 방법은이 섹션의 시작 부분에있는 노트를 참조하십시오.

    반환 값은 연결 문자 집합의 문자열입니다.

    mysql> SELECT SHA2('abc', 224);
            -> '23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7'

    이 함수는 MySQL이 SSL을 지원하도록 구성된 경우에만 작동합니다. 참조 "암호화 된 연결을 사용하여"6.4 절 .

    SHA2()MD5()또는 보다 안전한 것으로 간주 될 수 있습니다 SHA1().

  • STATEMENT_DIGEST(statement)

    SQL 문을 문자열로 지정하면 연결 문자 집합에있는 문 자열 다이제스트 해시 값을 문자열로 반환하거나 NULL인수가 NULL. 관련 STATEMENT_DIGEST_TEXT() 함수는 정규화 된 문 요약을 반환합니다. 명령문 다이제스트에 대한 자세한 내용은 26.10 절. "성능 스키마 문 다이제스트 및 샘플링"을 참조하십시오 .

    두 함수 모두 MySQL 구문 분석기를 사용하여 구문을 구문 분석합니다. 구문 분석에 실패하면 오류가 발생합니다. 오류 메시지에는 문이 리터럴 문자열로 제공되는 경우에만 구문 분석 오류가 포함됩니다.

    max_digest_length시스템 변수 정규화 진술 다이제스트를 계산하기위한 이러한 기능을 이용할 수있는 최대 바이트 수를 결정한다.

    mysql> SET @stmt = 'SELECT * FROM mytable WHERE cola = 10 AND colb = 20';
    mysql> SELECT STATEMENT_DIGEST(@stmt);
    +------------------------------------------------------------------+
    | STATEMENT_DIGEST(@stmt)                                          |
    +------------------------------------------------------------------+
    | 3bb95eeade896657c4526e74ff2a2862039d0a0fe8a9e7155b5fe492cbd78387 |
    +------------------------------------------------------------------+
    mysql> SELECT STATEMENT_DIGEST_TEXT(@stmt);
    +----------------------------------------------------------+
    | STATEMENT_DIGEST_TEXT(@stmt)                             |
    +----------------------------------------------------------+
    | SELECT * FROM `mytable` WHERE `cola` = ? AND `colb` = ?  |
    +----------------------------------------------------------+
  • STATEMENT_DIGEST_TEXT(statement)

    SQL 문을 문자열로 지정하면 정규화 된 문 다이제스트를 연결 문자 집합의 문자열로 반환하거나 NULL인수가 NULL. 추가 토론 및 예는 관련 STATEMENT_DIGEST()기능에 대한 설명을 참조하십시오 .

  • UNCOMPRESS(string_to_uncompress)

    COMPRESS()함수로 압축 된 문자열의 압축을 풉니 다 . 인수가 압축 된 값이 아니면 결과는 다음과 같습니다 NULL. 이 함수는 MySQL이와 같은 압축 라이브러리로 컴파일 된 것을 요구한다 zlib. 그렇지 않으면 반환 값은 항상 NULL입니다.

    mysql> SELECT UNCOMPRESS(COMPRESS('any string'));
            -> 'any string'
    mysql> SELECT UNCOMPRESS('any string');
            -> NULL
  • UNCOMPRESSED_LENGTH(compressed_string)

    압축 전의 압축 캐릭터 라인의 길이를 돌려줍니다.

    mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30)));
            -> 30
  • VALIDATE_PASSWORD_STRENGTH(str)

    평문 패스워드를 나타내는 인수가 주어지면,이 함수는 패스워드가 얼마나 강한지를 나타내는 정수를 반환합니다. 반환 값의 범위는 0 (약) ~ 100 (강함)입니다.

    비밀번호 평가 기준 VALIDATE_PASSWORD_STRENGTH() validate_password구성 요소에서 수행합니다 . 해당 구성 요소가 설치되어 있지 않으면 함수는 항상 0을 반환합니다. 설치에 대한 자세한 내용은 6.5.3 절 . "암호 유효성 검사 구성 요소"를validate_password 참조하십시오 . 암호 테스트에 영향을주는 매개 변수를 검사하거나 구성하려면에 의해 구현 된 시스템 변수를 확인하거나 설정하십시오 . 참조 섹션 6.5.3.2, "비밀번호 확인 옵션 및 변수"를 . validate_password

    암호는 점점 더 엄격한 검사를 받게되고 반환 값은 다음 표에 표시된 것처럼 어떤 검사가 만족되었는지를 반영합니다. 또한validate_password.check_user_name 시스템 변수가 사용 가능하고 암호가 사용자 이름과 일치하면 VALIDATE_PASSWORD_STRENGTH() 다른 validate_password시스템 변수가 설정되는 방} 과 관계없이 0을 리턴합니다 .

    비밀번호 테스트반환 값
    길이 <40
    길이 ≥ 4 및 < validate_password.length25 명
    만족 정책 1 ( LOW)50 개
    만족 정책 2 ( MEDIUM)75
    만족 정책 3 ( STRONG)100

  • REFERER : https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html


'Databases > mariaDB & Mysql' 카테고리의 다른 글

Mysql 원격에서 접속하는 방법  (0) 2019.01.14