DeriveCipherKey()
Syntaxe
Resultat = DeriveCipherKey(MotDePasse$, Salage$, Iterations, *Cle, CleBits, Plugin [, PluginBits])Description
Crée une clé de chiffrement avec le nombre spécifié de bits à partir d'un mot de passe d'entrée pour une utilisation dans d'autres fonctions de chiffrement comme le cryptage ou le déchiffrement. Cette fonction implémente l'algorithme de dérivation de clé PBKDF2.
Arguments
MotDePasse$ Le mot de passe pour la génération de la clé. Salage$ Une chaîne de "salage" ("salt string") afin de rendre le résultat de la fonction unique même si le même mot de passe est utilisé. Cela rend les attaques par force brute plus difficiles et empêche la divulgation d'informations en cas de correspondance des mots de passe.
Cette valeur ne doit pas nécessairement être secrète mais elle doit être unique si possible.Iterations Le nombre d'itérations de la boucle de génération de clé PBKDF2.
Un nombre plus élevé augmente le temps/calculs nécessaires pour calculer la clé et rend donc les attaques par force brute plus difficiles.*Cle Pointeur vers l'emplacement mémoire de la clé.
La zone mémoire doit avoir une taille d'au moins KeyBits/8 octets.CleBits La taille de la clé à générer en bits. Plugin Le plugin pour la fonction d'empreinte digitale à utiliser dans le calcul des clés. Il peut s'agir de l'une des valeurs suivantes : #PB_Cipher_MD5 : Utilise l'algorithme MD5. UseMD5Fingerprint() doit être appelé avant d'enregistrer ce plugin. #PB_Cipher_SHA1 : Utilise l'algorithme SHA1. UseSHA1Fingerprint() doit être appelé avant d'enregistrer ce plugin. #PB_Cipher_SHA2 : Utilise l'algorithme SHA2. UseSHA2Fingerprint() doit être appelé avant d'enregistrer ce plugin. #PB_Cipher_SHA3 : Utilise l'algorithme SHA3. UseSHA3Fingerprint() doit être appelé avant d'enregistrer ce plugin.PluginBits (optionnel) Le nombre de bits à utiliser pour la fonction d'empreinte digitale (fingerpriint). Il n'est pris en charge que pour le plugin suivant : #PB_Cipher_SHA2 : Peut être 224, 256 (par défaut), 384 ou 512. #PB_Cipher_SHA3 : Peut être 224, 256 (par défaut), 384 ou 512.Le nombre de bits pour la fonction d'empreinte digitale est indépendant de la taille de la clé à générer. Toute combinaison est autorisée.
Valeur de retour
Renvoie une valeur non nulle si la clé a été générée. Renvoie zéro uniquement si les paramètres du plugin n'étaient pas valides.
Exemple
UseSHA2Fingerprint() *Cle = AllocateMemory(32) ; Créez une clé de 256 bits à l'aide de la fonction de hachage SHA-512 et de 500 000 itérations DeriveCipherKey("MotdePasseSecret", "SalageNonSecret", 500000, *Cle, 256, #PB_Cipher_SHA2, 512) ; Montrer la clé ShowMemoryViewer(*Cle, 32)
Voir aussi
AESEncoder(), AESDecoder(), StartAESCipher()
OS Supportés
Tous