Les méthodes de cryptage des mots de passe incluent : 1. Enregistrer en texte brut ; 2. Enregistrer avec un algorithme de cryptage symétrique ; 3. Algorithmes HASH unidirectionnels tels que MD5 et SHA1 ; 5. Algorithmes tels que bcrypt ; et crypter.
Méthodes de cryptage des mots de passe utilisateur
Quelles sont les méthodes de cryptage courantes lorsque les mots de passe des utilisateurs sont enregistrés dans le base de données ? Les méthodes suivantes sont des moyens courants pour enregistrer les mots de passe :
1. Enregistrer en texte brut
Par exemple, le mot de passe défini par l'utilisateur est "123456" et "123456" est. directement enregistré dans la base de données. C’est le moyen le plus simple de sauvegarder, mais aussi le plus dangereux. Mais en réalité, de nombreuses sociétés Internet pourraient adopter cette approche.
2. Algorithme de cryptage symétrique pour enregistrer
Par exemple, 3DES, AES et d'autres algorithmes peuvent restaurer le mot de passe d'origine par décryptage. la clé du mot de passe. Cependant, étant donné qu'une grande quantité d'informations utilisateur a été divulguée, la clé est susceptible de l'être également. Bien entendu, les données générales et les clés peuvent être stockées et gérées séparément, mais il est également très compliqué de protéger complètement les clés. ce n'est pas dans le bon sens.
3. Algorithmes HASH unidirectionnels tels que MD5 et SHA1
Après avoir utilisé ces algorithmes, le mot de passe d'origine ne peut pas être restauré par calcul, et la mise en œuvre est relativement simple, c'est pourquoi de nombreuses sociétés Internet l'utilisent. Cette méthode pour enregistrer les mots de passe des utilisateurs était une méthode relativement sécurisée, mais avec l'essor de la technologie des tables arc-en-ciel, des tables arc-en-ciel peuvent être créées pour la recherche et le piratage de tables. Cette méthode est désormais très dangereuse.
En fait, la société a également utilisé cette méthode de cryptage MD5 auparavant.
4. Algorithme PBKDF2
Le principe de cet algorithme est à peu près équivalent à l'ajout de sel aléatoire à l'algorithme HASH et à l'exécution de plusieurs opérations de HASH. Le sel aléatoire augmente considérablement la difficulté de créer une table arc-en-ciel. . Plusieurs HASH augmentent également considérablement la difficulté de création et de craquage des tables.
Lors de l'utilisation de l'algorithme PBKDF2, HASH utilisera généralement sha1 ou sha256. La longueur du sel aléatoire ne doit généralement pas être inférieure à 8 octets et le nombre de HASH doit être au moins 1 000 fois, de sorte que le nombre de HASH soit au moins 1 000 fois. la sécurité est suffisamment élevée. Un processus de vérification de mot de passe effectue 1000 opérations de HASH, ce qui peut prendre seulement 1 ms pour le serveur, mais le coût de calcul augmente de 1000 fois pour le cracker, et au moins 8 octets de sel aléatoire, ce qui augmente la difficulté de créer une table de N Ordre de grandeur rendant presque impossible le piratage de mots de passe à grande échelle. Cet algorithme est également recommandé par le National Institute of Standards and Technology.
5. Des algorithmes tels que bcrypt et scrypt
Ces deux algorithmes peuvent également résister efficacement aux tables arc-en-ciel. Lorsque vous utilisez ces deux algorithmes, vous devez également spécifier les paramètres correspondants, ce qui rend le déchiffrement plus difficile. .
En cryptographie, scrypt (prononcé « ess crypt ») est une fonction de dérivation de clé inventée par Colin Percival en 2009. Elle a été initialement conçue pour être utilisée dans le service Tarsnap qu'il a fondé. Conçu pour les attaques à grande échelle sur du matériel personnalisé, il est intentionnellement conçu pour nécessiter de grandes quantités de mémoire.
Scrypt prend non seulement beaucoup de temps à calculer, mais prend également beaucoup de mémoire, ce qui rend extrêmement difficile le calcul de plusieurs résumés en parallèle, il est donc plus difficile d'utiliser des tables arc-en-ciel pour effectuer une force brute attaques. Scrypt n'est pas largement utilisé dans les environnements de production et manque d'un examen minutieux et d'une prise en charge étendue des bibliothèques. Cependant, tant qu’il n’y a pas de failles au niveau de l’algorithme, Scrypt devrait être plus sécurisé que PBKDF2 et bcrypt.
Résumé
L'utilisation de PBKDF2, bcrypt, scrypt et d'autres algorithmes peut résister efficacement aux attaques de table arc-en-ciel Même si les données sont divulguées, le « mot de passe utilisateur » le plus critique peut toujours être efficacement protégé et. les pirates ne peuvent pas pirater en masse les mots de passe des utilisateurs pour éliminer la cause première du bourrage d'informations d'identification et de l'analyse des comptes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!