Die AES_ENCRYPT SQL-Funktion in MySQL und MariaDB - Mit AES-Algorithmus verschlüsseln |
|
| AES_ENCRYPT | Syntax: | AES_ENCRYPT(Zeichenkette, Schlüssel) | Rückgabe-Wert: | BINARY | Funktions-Typ: | Verschlüsselung & Komprimierung | |
| | Die SQL-Funktion AES_ENCRYPT() verschlüsselt die "Zeichenkette" mit dem angegebenen "Schlüssel" unter Nutzung des AES-Algorithmus.
AES = Advanced Encryption Standard, auch bekannt als Rijndael.
Als Ergebnis wird ein Binärstring mit einfacher oder mehrfacher 128 Bit (16 Zeichen) Länge zurückgegeben, je nach Länge der "Zeichenkette", die verschlüsselt werden soll.
Numerische Werte in den Argumenten "Zeichenkette" und "Schlüssel" werden als Zeichenfolge interpretiert.
Wenn der Wert der Argumente "Zeichenkette" oder "Schlüssel" NULL ist, gibt die AES_ENCRYPT()-Funktion NULL zurück.
Die Funktion AES_DECRYPT() kann zum Entschlüsseln verwendet werden. | SQL Beispiele für die AES_ENCRYPT-Funktion |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
|
select hex(aes_encrypt('Test', 'Key')),
bit_length(aes_encrypt('Test', 'Key')) AS len;
select hex(aes_encrypt(repeat('Test', 5), sha2('Key',512))),
bit_length(aes_encrypt(repeat('Test', 5), 'Key')) as len;
select hex(aes_encrypt(repeat('Test', 10), sha2('Key',512))),
bit_length(aes_encrypt(repeat('Test', 10), 'Key')) as len;
select hex(aes_encrypt(repeat('Test', 20), sha2('Key',512))),
bit_length(aes_encrypt(repeat('Test', 20), 'Key')) as len;
select hex(aes_encrypt('123456', '789'));
select hex(aes_encrypt(123456, 789));
select hex(aes_encrypt('', 'key'));
select aes_encrypt(null, 'key');
select aes_encrypt('Test', null);
|
|
hex(aes_encrypt('Test', 'Key')) | |
| len |
varchar(32) BINARY | bigint(10) |
4AF21D11E66D5A9830B4297CFD7A78F6 | 128 |
|
|
|
hex(aes_encrypt(repeat('Test', 5), sha2('Key',512))) | |
| len |
varchar(64) BINARY | bigint(10) |
D07D851220021446BBA595ACCE20B2BB8C7A20F65BDEB36... | 256 |
|
|
|
hex(aes_encrypt(repeat('Test', 10), sha2('Key',512))) | |
| len |
varchar(96) BINARY | bigint(10) |
D07D851220021446BBA595ACCE20B2BBD07D85122002144... | 384 |
|
|
|
hex(aes_encrypt(repeat('Test', 20), sha2('Key',512))) | |
| len |
varchar(192) BINARY | bigint(10) |
D07D851220021446BBA595ACCE20B2BBD07D85122002144... | 768 |
|
|
|
hex(aes_encrypt('123456', '789')) |
varchar(32) BINARY |
F5646561ECA0A52CE14174A8CE4FFB47 |
|
|
hex(aes_encrypt(123456, 789)) |
varchar(32) BINARY |
F5646561ECA0A52CE14174A8CE4FFB47 |
|
|
hex(aes_encrypt('', 'key')) |
varchar(32) BINARY |
C717530F41F320757B4AA1BFAF11C42E |
|
|
aes_encrypt(null, 'key') |
varchar(16) BINARY |
NULL |
|
|
aes_encrypt('Test', null) |
varchar(16) BINARY |
NULL |
|
|
| Beispiele für die Berechnung der Länge des Rückgabe-Wertes |
|
select hex(aes_encrypt('Test', 'Key')), octet_length(aes_encrypt('Test', 'Key'));
select 16 * ceil((octet_length(repeat('test', 1)) + 1) / 16);
select 16 * ceil((octet_length(repeat('test', 5)) + 1) / 16);
select 16 * ceil((octet_length(repeat('test', 10)) + 1) / 16);
select 16 * ceil((octet_length(repeat('test', 20)) + 1) / 16);
|
|
hex(aes_encrypt('Test', 'Key')) | |
| octet_length(aes_encrypt('Test', 'Key')) |
varchar(32) BINARY | int(10) |
4AF21D11E66D5A9830B4297CFD7A78F6 | 16 |
|
|
|
16 * ceil((octet_length(repeat('test', 1)) + 1) / 16) |
bigint(15) |
16 |
|
|
16 * ceil((octet_length(repeat('test', 5)) + 1) / 16) |
bigint(15) |
32 |
|
|
16 * ceil((octet_length(repeat('test', 10)) + 1) / 16) |
bigint(15) |
48 |
|
|
16 * ceil((octet_length(repeat('test', 20)) + 1) / 16) |
bigint(15) |
96 |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der AES_ENCRYPT() Funktion in MySQL und MariaDB-Datenbanken | MySQL und MariaDB bieten eine AES_ENCRYPT()-Funktion, die zum Verschlüsseln von Daten mithilfe des AES-Verschlüsselungsalgorithmus verwendet wird. Dabei nimmt die Funktion die Daten und einen Schlüssel als Eingabe und gibt den verschlüsselten Wert als Binärstring zurück.
Die Funktion AES_ENCRYPT() in MySQL und MariaDB wird häufig zum Verschlüsseln vertraulicher Daten verwendet, die sicher in der Datenbank gespeichert werden müssen, zum Beispiel sensible Daten wie personenbezogene Daten, Passwörter, Kreditkartennummern oder andere vertrauliche Daten. Durch die Verschlüsselung bleiben Daten ohne den Schlüssel unlesbar, selbst wenn die Datenbank kompromittiert wird.
Die Funktion bietet zudem Sicherheit bei der Übertragung von daten über unsichere Netzwerke oder Kommunikationskanäle, oder bei Datenschutzbestimmungen, die den Schutz sensibler Informationen erfordern, sowie beim Verschlüsseln von Datenbank-Backups. | | Weitere MySQL und MariaDB SQL Verschlüsselung & Komprimierung | |
| | Weitere Informationen zur SQL-Funktion AES_ENCRYPT: und |
|
|
|
|