Signatur
Beschreibung
sodium_crypto_aead_aegis128l_keygen() generiert einen zufälligen 128-Bit-Schlüssel (16 Bytes), der für die Verwendung mit den AEGIS-128L-AEAD-Funktionen (sodium_crypto_aead_aegis128l_encrypt, sodium_crypto_aead_aegis128l_decrypt usw.) bestimmt ist. Der Schlüssel wird intern über einen kryptografisch sicheren Zufallszahlengenerator erzeugt.
AEGIS-128L ist ein modernes, hochperformantes Authenticated-Encryption-with-Associated-Data-Verfahren (AEAD), das sowohl die Vertraulichkeit als auch die Integrität der Daten sicherstellt. Im Vergleich zu AES-GCM bietet AEGIS-128L auf moderner Hardware eine deutlich höhere Durchsatzrate.
Der zurückgegebene Schlüssel sollte sicher gespeichert und niemals im Klartext übertragen werden. Für die Schlüsselableitung aus Passwörtern sollte stattdessen sodium_crypto_pwhash verwendet werden.
Rückgabewert
SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES (16 Bytes) zurück, der den zufällig erzeugten Schlüssel enthält.Beispiele
Schlüssel erzeugen und für spätere Verwendung speichern
<?php
// Schlüssel erzeugen
$key = sodium_crypto_aead_aegis128l_keygen();
// Schlüssel als Hex-String ausgeben (z. B. zur sicheren Speicherung)
echo bin2hex($key) . PHP_EOL;
echo 'Schlüssellänge: ' . strlen($key) . ' Bytes' . PHP_EOL;
Verschlüsselung und Entschlüsselung mit AEGIS-128L
<?php
// Schlüssel und Nonce erzeugen
$key = sodium_crypto_aead_aegis128l_keygen();
$nonce = random_bytes(SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES);
$plaintext = 'Geheime Nachricht';
$additionalData = 'Öffentliche Metadaten';
// Verschlüsseln
$ciphertext = sodium_crypto_aead_aegis128l_encrypt(
$plaintext,
$additionalData,
$nonce,
$key
);
// Entschlüsseln
$decrypted = sodium_crypto_aead_aegis128l_decrypt(
$ciphertext,
$additionalData,
$nonce,
$key
);
if ($decrypted === false) {
throw new RuntimeException('Entschlüsselung fehlgeschlagen!');
}
echo $decrypted . PHP_EOL;
// Wichtig · Fallstricke
Sicherheitshinweise:
- Den erzeugten Schlüssel niemals im Klartext loggen, ausgeben oder in unsicheren Speicherorten ablegen.
- Eine Nonce darf mit demselben Schlüssel niemals wiederverwendet werden – dies würde die Vertraulichkeit und Integrität der Verschlüsselung gefährden.
- AEGIS-128L ist ab libsodium 1.0.19 verfügbar. In PHP steht die Funktion ab Version 8.4.0 zur Verfügung. Ältere PHP-Versionen unterstützen AEGIS-128L nicht.
- Für den Austausch von Schlüsseln zwischen Parteien sollte ein geeignetes Schlüsselaustauschprotokoll wie
sodium_crypto_kxgenutzt werden.