AES_ENCRYPT

Encrypts the given plaintext using the AES (Advanced Encryption Standard) algorithm with a 128-bit key .

Syntax

AES_ENCRYPT(plaintext, key)

Arguments

  • plaintext: the binary string data to encrypt

  • key: the text or binary string key to use for encryption

Return Type

The "ciphertext" of encrypted data, in binary.

Remarks

  • Encryption Algorithm: AES

  • Key Size: 128 bit

  • Operation Mode:

    • ECB: Electronic Code Book mode

  • IV (initialization vector): Not used,

Examples

Note: the HEX function is used in this example to make it easier to handle/display binary data.

SELECT HEX(AES_ENCRYPT('secret message', 'ohai'));
+--------------------------------------------+
| HEX(AES_ENCRYPT('secret message', 'ohai')) |
+--------------------------------------------+
| C958FF3BC0134ADE4A8F952338C1FAEC |
+--------------------------------------------+

If you do not use an IV, an attacker may be able to learn things about your encrypted data by noticing that the same value encrypted twice with the same key produces the same ciphertext. Instead, use a new IV for each encryption. That way, encrypting the same value twice with the same key and a different IV will result in different cyphertext. A common practice is to store the IV next to the ciphertext in another column. Here’s an example of this approach.

Related Topics

AES_DECRYPT

Last modified: February 27, 2023

Was this article helpful?