최종 수정: 에
SM4_ENCRYPT
설명
SM4는 국가 표준 대칭 키 암호화 알고리즘으로, 금융, 통신, 전자상거래 등 다양한 분야에서 널리 사용됩니다. SM4_ENCRYPT 함수는 SM4를 사용하여 데이터를 암호화합니다. 기본 알고리즘은 SM4_128_ECB입니다.
구문
SM4_ENCRYPT( <str>, <key_str>[, <init_vector>][, <encryption_mode>])
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 암호화할 텍스트 |
<key_str> | 암호화 키입니다. 이 키는 십육진수 인코딩 값이 아니라 인코딩된 문자열 표현입니다. 예를 들어, 128비트 키 암호화에서는 key_str의 길이가 16이어야 합니다. 키 길이가 부족하면 zero padding으로 채웁니다. 길이가 초과하면 순환 XOR 연산으로 최종 키를 구합니다. 예를 들어, 알고리즘에서 사용하는 128비트 키가 key이면 key[i] = key_str[i] ^ key_str[i+128] ^ key_str[i+256] ^ ...입니다. |
<init_vector> | 알고리즘에서 사용하는 초기화 벡터입니다. 특정 알고리즘에서만 유효합니다. 지정하지 않으면 Doris는 내장 벡터를 사용합니다. |
<encryption_mode> | 암호화 알고리즘입니다. 선택 가능한 값은 변수에 정의되어 있습니다. |
반환 값
암호화된 바이너리 데이터를 반환합니다.
예제
기본 알고리즘 사용
set block_encryption_mode='';
select TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));
+----------------------------------------------------------+
| to_base64(sm4_encrypt('text', '***', '', 'SM4_128_ECB')) |
+----------------------------------------------------------+
| aDjwRflBrDjhBZIOFNw3Tg== |
+----------------------------------------------------------+
SM4_128_CBC 알고리즘 사용
set block_encryption_mode="SM4_128_CBC";
select TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));
+----------------------------------------------------------+
| to_base64(sm4_encrypt('text', '***', '', 'SM4_128_CBC')) |
+----------------------------------------------------------+
| FSYstvOmH2cXy7B/072Mug== |
+----------------------------------------------------------+
SM4_128_CBC 알고리즘을 사용하고 초기화 벡터 설정
set block_encryption_mode="SM4_128_CBC";
select to_base64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));
+--------------------------------------------------------------------+
| to_base64(sm4_encrypt('text', '***', '0123456789', 'SM4_128_CBC')) |
+--------------------------------------------------------------------+
| 1Y4NGIukSbv9OrkZnRD1bQ== |
+--------------------------------------------------------------------+