Comment crypter et déchiffrer les données dans Laravel?
Laravel utilise la façade de la crypte pour implémenter le chiffrement et le décryptage des données. Tout d'abord, assurez-vous qu'il existe une APP_KEY valide dans le fichier .env et générez-le via PHP Artisan Key: Generate; 1. Crypt des chaînes à l'aide de crypte :: EncryptString (), comme $ crypted = crypt :: EncryptString ('Bonjour, c'est secret!'); 2. Decrypt les données à l'aide de Crypt :: DecryptString ($ crypté) et capture de décryptexception avec un coup d'essai; 3. Dans le modèle, les lectures de stockage et de décryptage peuvent être automatiquement chiffrées par le biais d'accessoires et de modificateurs, tels que SetSSSnattribute et GOSSSATTRIBUT des méthodes; 4. Faites attention à ne pas utiliser le cryptage pour stocker les mots de passe. Hash :: Make () doit être utilisé. Une fois que App_Key modifie les données cryptées d'origine, elle ne sera pas déchiffrée. Évitez de chiffrer une grande quantité de données pour réduire les frais généraux. Le cryptage de fichiers nécessite le chiffre d'affaires avant le stockage. Résumé: Laravel fournit des services de chiffrement sécurisés et pratiques via l'algorithme AES-256-CBC, et utilisez raisonnablement la façade de la crypte et effectuez une gestion des exceptions et une gestion des clés pour garantir la sécurité des données.
Laravel fournit un moyen simple et sécurisé de crypter et de déchiffrer les données à l'aide de son service de chiffrement intégré, qui exploite OpenSSL avec le chiffre AES-256-CBC par défaut. Cela garantit que les données sensibles (comme les clés d'API, les informations utilisateur ou les valeurs de configuration) peuvent être stockées ou transmises en toute sécurité.

Voici comment vous pouvez crypter et déchiffrer les données dans Laravel:
✅ 1. Utilisez la façade de Crypt
de Laravel
La façade Crypt
de Laravel fournit une interface facile pour le chiffrement et le déchiffrement. Il faut que votre application ait un ensemble APP_KEY
valide dans le fichier .env
(qui est généré automatiquement pendant l'installation).

Assurez-vous que votre .env
contient quelque chose comme:
App_Key = Base64: votre chaîne codée de base 64
Vous pouvez le générer en utilisant:

PHP Artisan Key: Générer
✅ 2. Crypt les données
Pour chiffrer les données, utilisez Crypt::encrypt()
ou Crypt::encryptString()
.
? Utilisez
encryptString()
pour les chaînes pour éviter les problèmes de sérialisation.
Utiliser illuminate \ support \ FACADES \ Crypt; $ crypted = crypte :: EncryptString («Bonjour, c'est secret!»);
Cela renvoie une chaîne cryptée qui ressemble:
eyjpdii6inl ...
Vous pouvez stocker cela dans une base de données ou une session en toute sécurité.
✅ 3. Dégrypt les données
Pour décrypter, utilisez Crypt::decryptString()
(pour les chaînes):
essayer { $ decrypted = crypt :: decryptString ($ crypté); écho $ décrypté; // Sortie: Bonjour, c'est secret! } catch (illuminer \ contracts \ Encryption \ decryptexception $ e) { // Gérer la défaillance du décryptage (par exemple, les données falsifiées, la mauvaise clé) Echo «Le décryptage a échoué!»; }
⚠️ Enveloppez toujours le décryptage dans un bloc d'essai car les données non valides ou falsifiées lanceront une
DecryptException
.
✅ 4. Exemple: stocker les données cryptées dans la base de données
Supposons que vous ayez une table users
avec un champ ssn
(numéro de sécurité sociale) que vous souhaitez crypter.
Dans votre modèle (facultatif):
Utiliser illuminate \ support \ FACADES \ Crypt; L'utilisateur de classe étend le modèle { // Ne stockez pas SSN brut SetSSSNATTRIBLE publique ($ Valeur) { $ this-> attributs ['ssn'] = crypt :: encryptString ($ value); } La fonction publique est en train de servir ($ valeur) { essayer { return crypt :: decryptString ($ value); } catch (\ illuminate \ contracts \ Encryption \ decryptexception $ e) { rendement «décryptage a échoué»; } } }
Maintenant, quand vous économisez:
User :: Create ([[ 'nom' => 'John Doe', 'ssn' => '123-45-6789', // automatiquement crypté ]));
Lorsque vous lisez:
$ user = user :: First (); echo $ user-> ssn; // Décrypté automatiquement → "123-45-6789"
? ️ Notes de sécurité
- Ne crypte jamais les mots de passe - utilisez plutôt
Hash::make()
. - Le chiffrement utilise votre
APP_KEY
. S'il change, toutes les données précédemment cryptées deviennent indésirables. - Évitez de crypter de grandes quantités de données - le cryptage ajoute des frais généraux et du stockage.
- Pour chiffrer les fichiers, envisagez de crypter le contenu du fichier avant d'enregistrer et de décrypter après la lecture.
? Cryption manuel sans façade (facultatif)
Vous pouvez également utiliser directement le conteneur de service:
app ('Encryptter') -> EncryptString ('data'); app ('Encrypter') -> decryptString ($ EncryptedData);
✅ Résumé
Tâche | Code |
---|---|
Crypt de la chaîne | Crypt::encryptString('secret')
|
Décrypter la chaîne | Crypt::decryptString($encrypted)
|
Gérer les erreurs | Utilisez try/catch
|
Encrypte automatique / décrypteur dans les modèles | Utiliser des accessoires / mutateurs |
Fondamentalement, Laravel rend le cryptage simple et sécurisé hors de la boîte - utilisez simplement Crypt::encryptString()
et Crypt::decryptString()
avec une gestion des erreurs appropriée. Protégez votre APP_KEY
et jamais exposer les données décryptées inutilement.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Créer un tableau de références pour enregistrer les relations de recommandation, y compris les références, les références, les codes de recommandation et le temps d'utilisation; 2. Définir l'appartenance et les relations HasMany dans le modèle d'utilisateur pour gérer les données de recommandation; 3. Générer un code de recommandation unique lors de l'enregistrement (peut être implémenté via des événements modèles); 4. Capturez le code de recommandation en interrogeant les paramètres lors de l'enregistrement, établissez une relation de recommandation après vérification et empêchez l'auto-recommandation; 5. Déclencher le mécanisme de récompense lorsque les utilisateurs recommandés terminent le comportement spécifié (ordre d'abonnement); 6. Générer des liens de recommandation partageables et utiliser les URL de signature Laravel pour améliorer la sécurité; 7. Afficher les statistiques de recommandation sur le tableau de bord, telles que le nombre total de recommandations et de nombres convertis; Il est nécessaire de s'assurer que les contraintes de base de données, les séances ou les cookies sont persistées,

CheckPhp> = 8.1, compositeur, etwebserver; 2.CloneOrCreateProjectAndrunCompoSeRinstall; 3.Copy.env.Exampleto.envandrunphPartisanKey : générer; 4.setDatabaseCredentialSin.envandrunphPartisanMigrate - Seed; 5.StartServerWithPhPartisansEserve; 6. Optionallyrunnpmins

Créer un fichier de semences: utilisez PhPartisanMake: SeeDerUserSederder pour générer la classe Seeder et insérer des données via la requête Model Factory ou Database dans la méthode d'exécution; 2. Appelez un autre Seeder dans DatabaseSeseder: enregistrez USERSEDEDER, POSTSEEDER, etc. dans l'ordre via $ this-> call () pour s'assurer que la dépendance est correcte; 3. Exécutez Seeder: Exécutez PHPARTISANDB: graines pour exécuter tous les semants enregistrés, ou utilisez du phpartisanMigrate: Fresh - Seed pour réinitialiser et remplir les données; 4

ChoOSEAFEUREFLAGSTATTECYSUCHASCONFIG, basé sur la base de données, Orthird-PartyToolsLILLFlagsmith.2.SetUpadatabase-DrivensystemByCreatAmamigrationForaFeate_Flagstablewithname, Activé, Andrulesfields, Therunthemigration.3.CreateafateAtteflagModelwithe

Créer un nouveau projet Laravel et démarrer le service; 2. Générez le modèle, la migration et le contrôleur et exécuter la migration; 3. Définissez l'itinéraire RESTful dans les routes / api.php; 4. Implémentez la méthode d'addition, de suppression, de modification et de requête dans Post Controller et renvoyez la réponse JSON; 5. Utilisez Postman ou Curl pour tester la fonction API; 6. Ajouter éventuellement l'authentification de l'API via Sanctum; Enfin, obtenez une structure claire, Laravelrestapi complète et extensible, adaptée aux applications pratiques.

Eloquentorm est le système de cartographie relationnel d'objet intégré de Laravel. Il exploite la base de données via la syntaxe PHP au lieu de SQL native, ce qui rend le code plus concis et plus facile à maintenir; 1. Chaque tableau de données correspond à une classe de modèle, et chaque enregistrement existe comme instance de modèle; 2. Adopter le mode d'enregistrement actif et l'instance du modèle peut être enregistrée ou mise à jour par elle-même; 3. Prise en charge de l'affectation par lots et l'attribut à remplissage $ doit être défini dans le modèle pour garantir la sécurité; 4. Fournir un fort soutien relationnel, comme un à un, un-à-plusieurs, plusieurs à plusieurs, etc., et vous pouvez accéder aux données associées via des appels de méthode; 5. Constructeur de requête intégré, où, OrderBy et d'autres méthodes peuvent être appelés enchaînés pour construire des requêtes; 6. Prise en charge des accessoires et des modificateurs, qui peuvent formater le numéro lors de l'obtention ou de la définition d'attributs.

Le modèle de référentiel est un modèle de conception utilisé pour découpler la logique métier à partir de la logique d'accès aux données. 1. Il définit les méthodes d'accès aux données via des interfaces (contrat); 2. Les opérations spécifiques sont implémentées par la classe de référentiel; 3. Le contrôleur utilise l'interface par injection de dépendance et ne contacte pas directement la source de données; 4. Les avantages incluent un code soigné, une testabilité solide, une maintenance facile et une collaboration d'équipe; 5. Applicable aux projets moyens et grands, les petits projets peuvent utiliser directement le modèle.

EAGER DÉLOCKINGPREVENTSTHEN 1QUERYPROBLBBYDOLODINGRELATIONSHIPSUPFRONT.THEN 1PROBLEMOCCURSWHEN1QUERYFetCheSrecords (par exemple, 100posts) et NadditionalQueriesFetchRelatedData (par exemple, AuthorForCost), résultant en 101quelles.
