HEX(AES_ENCRYPT(입력할 문자열, AES_KEY ))

AES 암호화는 입력 데이터 블록을 고정 크기의 암호화 블록으로 변환한다.

AES 블록 크기는 128비트(16바이트)이며, AES-256의 경우 키 크기는 256비트(32바이트)입니다. 그러나 암호화되는 데이터 자체는 항상 128비트 블록 크기로 처리된다.

  1. 256자 HEX 문자열 = 128바이트 바이너리 데이터
  2. AES는 16바이트(128비트) 블록 크기를 사용합니다.
  3. AES 암호화 블록의 크기(16바이트)의 배수로 데이터가 패딩되어야 하므로, 128바이트는 16바이트 블록 8개입니다.
  4. 각 블록은 암호화된 상태에서 16바이트로 표현되므로 총 128바이트를 가집니다.
  5. 한글 문자는 최악의 경우 3바이트로 인코딩됩니다.

따라서, 128바이트에 들어갈 수 있는 최대 한글 문자 수는:

Untitled

최대 42자의 한글 문자를 AES 암호화한 후 256자의 HEX 문자열로 표현할 수 있다.


100개의 한글 문자를 인코딩할 때 필요한 최대 바이트 수

Untitled

AES는 128비트(16바이트) 블록 크기를 사용하므로, 300바이트는 16바이트로 패딩

300바이트는 16바이트로 나누어 떨어지지 않으므로, 가장 가까운 16의 배수로 패딩

Untitled