DeriveCipherKey()
Syntax
Ergebnis = DeriveCipherKey(Passwort$, Salt$, Iterationen, *Key, KeyBits, Plugin [, PluginBits])Beschreibung
Erstellt aus einem Eingabekennwort einen "Chiffrierschlüssel" (englisch "cipher key") mit der angegebenen Anzahl von Bits zur Verwendung in anderen Verschlüsselungsfunktionen wie Verschlüsselung oder Entschlüsselung. Diese Funktion implementiert den PBKDF2-Schlüsselableitungsalgorithmus.
Parameter
Passwort$ Das Passwort für die Schlüsselgenerierung. Salt$ Eine "Salt"-Zeichenfolge, um das Ergebnis der Funktion eindeutig zu machen, auch wenn dasselbe Passwort verwendet wird. Dies erschwert Brute-Force-Angriffe und verhindert die Offenlegung von Informationen bei übereinstimmenden Passwörtern.
Dieser Wert muss nicht geheim sein, sollte jedoch möglichst einmalig sein.Iterationen Die Anzahl der Iterationen der PBKDF2-Schlüsselgenerierungsschleife. Eine größere Zahl erhöht den Zeit-/Berechnungsaufwand für die Berechnung des Schlüssels und erschwert daher Brute-Force-Angriffe. *Key Ein Zeiger auf den Speicherort, der den generierten Schlüssel empfängt. Der Speicherbereich muss mindestens 'KeyBits'/8 Byte groß sein. KeyBits Die Größe des zu generierenden Schlüssels in Bits. Plugin Das Plugin für die bei der Schlüsselberechnung zu verwendende 'Fingerprint'-Funktion zur Verwendung. Es kann einer der folgenden Werte sein: #PB_Cipher_MD5 : verwendet den MD5-Algorithmus. UseMD5Fingerprint() muss zuvor aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA1 : verwendet den SHA1-Algorithmus. UseSHA1Fingerprint() muss zuvor aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA2 : verwendet den SHA2-Algorithmus. UseSHA2Fingerprint() muss zuvor aufgerufen werden, um dieses Plugin zu registrieren. #PB_Cipher_SHA3 : verwendet den SHA3-Algorithmus. UseSHA3Fingerprint() muss zuvor aufgerufen werden, um dieses Plugin zu registrieren.PluginBits (optional) Die für die 'Fingerprint'-Funktion zu verwendende Bitanzahl. Es wird nur für die folgenden Plugins unterstützt: #PB_Cipher_SHA2 : kann 224, 256 (Standard), 384 oder 512 sein. #PB_Cipher_SHA3 : kann 224, 256 (Standard), 384 oder 512 sein.Die Anzahl der Bits für die 'Fingerprint'-Funktion ist unabhängig von der zu generierenden Schlüsselgröße. Jede Kombination ist erlaubt.
Rückgabewert
Gibt einen Wert ungleich Null zurück, wenn der Schlüssel generiert wurde. Gibt nur Null zurück, wenn die Plugin-Parameter ungültig waren.
Beispiel
UseSHA2Fingerprint() *Key = AllocateMemory(32) ; Erstellt einen 256-Bit-Schlüssel mithilfe der SHA-512-Hash-Funktion und 500.000 Iterationen DeriveCipherKey("SecretPassword", "NonSecretSalt", 500000, *Key, 256, #PB_Cipher_SHA2, 512) ; Zeigt den Schlüssel an ShowMemoryViewer(*Key, 32)
Siehe auch
AESEncoder(), AESDecoder(), StartAESCipher()
Unterstützte OS
Alle