Datenverschlüsselung und -entschlüsselung in Laravel
Dec 12, 2024 am 11:50 AMDiese Anleitung erkl?rt, wie man die Verschlüsselung und Entschlüsselung sensibler Daten in Laravel-Modellen implementiert. Durch Ausführen der folgenden Schritte k?nnen Sie die Daten vor dem Speichern in der Datenbank schützen und beim Abrufen der Daten entschlüsseln.
Voraussetzungen
- Laravel: Stellen Sie sicher, dass Sie ein Laravel-Projekt verwenden.
- Verschlüsselungsschlüssel: Laravel generiert automatisch APP_KEY in der .env-Datei. Dieser Schlüssel wird vom Verschlüsselungsdienst von Laravel verwendet.
Schritt 1: Verschlüsselung im Modell einrichten
Im Modell verwenden wir die Funktionen encrypt() und decrypt() von Laravel, um die Verschlüsselung und Entschlüsselung der angegebenen Felder automatisch durchzuführen.
Doctor-Modell
Erstellen oder aktualisieren Sie ein Doctor-Modell mithilfe von Verschlüsselungs- und Entschlüsselungsmethoden. Wir verschlüsseln Felder wie Vorname, Nachname, E-Mail und Mobiltelefon, bevor wir sie in der Datenbank speichern.
<?phpnamespace AppModels;use IlluminateDatabaseEloquentModel;use IlluminateSupportFacadesCrypt;class Doctor extends Model{ protected $fillable = [ 'first_name', 'last_name', 'email', 'mobile', 'hashed_email', 'password' ]; // Automatically encrypt attributes when setting them public function setFirstNameAttribute($value) { $this->attributes['first_name']?=?encrypt($value); ????} ????public?function?setLastNameAttribute($value) ????{ ????????$this->attributes['last_name']?=?encrypt($value); ????} ????public?function?setEmailAttribute($value) ????{ ????????$this->attributes['email']?=?encrypt($value); ????} ????public?function?setMobileAttribute($value) ????{ ????????$this->attributes['mobile']?=?encrypt($value); ????} ????//?Automatically?decrypt?attributes?when?getting?them ????public?function?getFirstNameAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getLastNameAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getEmailAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getMobileAttribute($value) ????{ ????????return?decrypt($value); ????}}
Beschreibung
- Setter-Methode: Verwenden Sie set{AttributeName }Attribute(), um die Daten zu verschlüsseln, bevor Sie sie in der Datenbank speichern.
- Getter-Methode: Verwenden Sie get{AttributeName}Attribute() zum Entschlüsseln, wenn Sie Daten aus der Datenbank abrufen.
Schritt 2: Controller für Datenspeicherung und -abruf
Im Controller k?nnen Sie die Validierung durchführen und die Modelle aufrufen Verschlüsseln Sie Attribute direkt ohne zus?tzliche Verschlüsselung/Entschlüsselung Schritt.
DoctorController
DoctorController übernimmt die Registrierung durch Validierung
Geben Sie die Daten ein, verschlüsseln Sie sie über das Modell und speichern Sie sie in der Datenbank.
Wenn Arztdaten erfasst werden, werden diese automatisch entschlüsselt
Sensible Felder.
<?phpnamespace AppHttpControllers;use IlluminateHttpRequest;use AppModelsDoctor;use IlluminateSupportFacadesHash;class DoctorController extends Controller{ public function register(Request $request) { // Validate the incoming request $validatedData = $request->validate([ ????????????'first_name'?=>?'required|string|max:255', ????????????'last_name'?=>?'required|string|max:255', ????????????'email'?=>?'required|string|email|max:255|unique:doctors,email', ????????????'mobile'?=>?'required|string|size:10|unique:doctors,mobile', ????????????'password'?=>?'required|string|min:8|confirmed', ????????]); ????????//?Hash?the?email?to?ensure?uniqueness ????????$hashedEmail?=?hash('sha256',?$validatedData['email']); ????????//?Create?a?new?doctor?record?(model?will?handle?encryption) ????????$doctor?=?Doctor::create([ ????????????'first_name'?=>?$validatedData['first_name'], ????????????'last_name'?=>?$validatedData['last_name'], ????????????'email'?=>?$validatedData['email'], ????????????'hashed_email'?=>?$hashedEmail, ????????????'mobile'?=>?$validatedData['mobile'], ????????????'password'?=>?Hash::make($validatedData['password']), ????????]); ????????return?response()->json([ ????????????'message'?=>?'Doctor?registered?successfully', ????????????'doctor'?=>?$doctor ????????],?201); ????} ????public?function?show($id) ????{ ????????//?Fetch?the?doctor?record?(model?will?decrypt?the?data?automatically) ????????$doctor?=?Doctor::findOrFail($id); ????????return?response()->json($doctor); ????}}
Beschreibung
- Registrierungsmethode: überprüfen Sie die eingehende Anfrage, erstellen Sie eine neue Arztakte und verschlüsseln Sie automatisch Felder wie Vorname, Nachname, E-Mail und Mobiltelefon basierend auf der Verschlüsselungsmethode des Modells.
- Methode anzeigen: Arztakten nach ID abrufen. Das Sensible Felder werden vor der Getter-Methode des Modells automatisch entschlüsselt Daten zurückgeben.
Schritt 3: Datenbankkonfiguration
Stellen Sie sicher, dass die Arzttabellenspalten für sensible Daten lang genug sind, um verschlüsselte Daten zu verarbeiten (normalerweise TEXT oder LONGTEXT).
Beispiel für Migrationseinstellungen:
Schema::create('doctors',?function?(Blueprint?$table)?{ ????$table->id(); ????$table->text('first_name'); ????$table->text('last_name'); ????$table->text('email'); ????$table->string('hashed_email')->unique();?//?SHA-256?hashed?email ????$table->text('mobile'); ????$table->string('password'); ????$table->timestamps();});
Hinweis: Da verschlüsselte Werte viel l?nger sein k?nnen als einfacher Text, wird Text für verschlüsselte Felder bevorzugt .
Schritt 4: Entschlüsselungsausnahmen behandeln
Um die Fehlerbehandlung zu verbessern, packen Sie die Entschlüsselungslogik in einen Try-Catch-Block im Modell-Getter:
<?phpnamespace AppModels;use IlluminateDatabaseEloquentModel;use IlluminateSupportFacadesCrypt;class Doctor extends Model{ protected $fillable = [ 'first_name', 'last_name', 'email', 'mobile', 'hashed_email', 'password' ]; // Automatically encrypt attributes when setting them public function setFirstNameAttribute($value) { $this->attributes['first_name']?=?encrypt($value); ????} ????public?function?setLastNameAttribute($value) ????{ ????????$this->attributes['last_name']?=?encrypt($value); ????} ????public?function?setEmailAttribute($value) ????{ ????????$this->attributes['email']?=?encrypt($value); ????} ????public?function?setMobileAttribute($value) ????{ ????????$this->attributes['mobile']?=?encrypt($value); ????} ????//?Automatically?decrypt?attributes?when?getting?them ????public?function?getFirstNameAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getLastNameAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getEmailAttribute($value) ????{ ????????return?decrypt($value); ????} ????public?function?getMobileAttribute($value) ????{ ????????return?decrypt($value); ????}}
Zus?tzliche Hinweise
- Umweltsicherheit: Stellen Sie sicher, dass APP_KEY sicher in der .env-Datei gespeichert ist. Dieser Schlüssel ist für die Verschlüsselung/Entschlüsselung unerl?sslich.
- Datensicherung: Wenn die Datenintegrit?t von entscheidender Bedeutung ist, stellen Sie sicher, dass Sie über einen Sicherungsmechanismus verfügen, da verschlüsselte Daten ohne den richtigen APP_KEY nicht wiederhergestellt werden k?nnen.
Zusammenfassung
- Modellverschlüsselung: Verwenden Sie die Setter-Methode, um Daten vor der Speicherung zu verschlüsseln, und verwenden Sie die Getter-Methode, um sie beim Abruf zu entschlüsseln.
- Controller-Logik: Der Controller kann verschlüsselte Felder direkt ohne zus?tzlichen Verschlüsselungscode verarbeiten.
- Datenbankkonfiguration: Verwenden Sie TEXT- oder LONGTEXT-Spalten als verschlüsselte Felder.
- Sicherheitshinweis: Sichern Sie Ihren APP_KEY und verwenden Sie die Ausnahmebehandlung im Getter, um Entschlüsselungsfehler zu behandeln.
Das obige ist der detaillierte Inhalt vonDatenverschlüsselung und -entschlüsselung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ethereum ist eine dezentrale Anwendungsplattform, die auf intelligenten Vertr?gen basiert, und seine native Token -ETH kann auf verschiedene Weise erhalten werden. 1. Registrieren Sie ein Konto über zentralisierte Plattformen wie Binance und Ouyiok, vervollst?ndigen Sie die KYC -Zertifizierung und kaufen Sie ETH mit Stablecoins. 2. Einschalten Sie mit dezentralen Plattformen mit digitalem Speicher und tauschen Sie die ETH mit Stablecoins oder anderen Token direkt aus. 3.. Nehmen Sie an Netzwerkversprechen teil, und Sie k?nnen die unabh?ngige Verpf?ndung (ben?tigt 32 ETH), Liquid Pledge Services oder One-Click-Versprechen auf der zentralisierten Plattform, um Belohnungen zu erhalten. 4. Verdienen Sie ETH, indem Sie Dienstleistungen für Web3 -Projekte erstellen, Aufgaben erledigen oder Airdrops erhalten. Es wird empfohlen, dass Anf?nger mit zentralisierten Mainstream -Plattformen beginnen, schrittweise zu dezentralen Methoden übergehen und immer Bedeutung für die Sicherheit von Verm?genswerten und die unabh?ngigen Forschung beibringen

Die am besten geeigneten Tools zur Abfrage von Stablecoin -M?rkten im Jahr 2025 sind: 1. Binance, mit ma?geblichen Daten und reichhaltigen Handelspaaren sowie integrierten TradingView -Diagrammen, die für die technische Analyse geeignet sind. 2. Ouyi, mit klarer Schnittstelle und starker funktionaler Integration, und unterstützt den One-Stop-Betrieb von Web3-Konten und Defi; 3. Coinmarketcap mit vielen W?hrungen und der Stablecoin -Sektor k?nnen die Marktwert -Rangliste und -Dekane betrachten. 4. Coingecko mit umfassenden Datenabmessungen bietet Vertrauenswerte und Aktivit?tsindikatoren der Community und hat eine neutrale Position. 5. Huobi (HTX) mit stabilen Marktbedingungen und freundlichen Gesch?ftst?tigkeit, geeignet für Mainstream -Anfragen; 6. Gate.io mit der schnellsten Sammlung neuer Münzen und Nischenw?hrungen und ist die erste Wahl für Projekte, um das Potenzial zu untersuchen. 7. Tra

Der wahre Einsatz von Battle Royale im Dual -W?hrungssystem ist noch nicht stattgefunden. Schlussfolgerung Im August 2023 gab der Protokollfunke des Makerdao Ecological Lending eine annualisierte Rendite von 8 USD%. Anschlie?end trat Sun Chi in Chargen ein und investierte insgesamt 230.000 $ Steth, was mehr als 15% der Einlagen von Spark ausmacht und Makerdao dazu zwang, einen Notfallvorschlag zu treffen, um den Zinssatz auf 5% zu senken. Die ursprüngliche Absicht von Makerdao war es, die Nutzungsrate von $ dai zu "subventionieren" und fast zu Justin Suns Soloertrag wurde. Juli 2025, Ethe

Inhaltsverzeichnis Kryptomarkt Panorama -Nugget Popul?r Token Vinevine (114,79%, Kreismarktwert 144 Millionen US -Dollar) Zorazora (16,46%, Kreismarktwert 290 Millionen US -Dollar US -Dollar) Navxnaviprotokoll (10,36%, kreisf?rmiger Marktwert 35,7624 Millionen US -Dollar). Cryptopunks starteten den ersten Platz im dezentralen Prover -Netzwerk, das die Loccinte Foundation gestartet hat, die m?glicherweise das Token tge sein k?nnte

Was ist Baumhaus (Baum)? Wie funktioniert Baumhaus (Baum)? Treehouse Products Tethdor - Dezentrale Anführungsquote Gonuts Points System Treeehouse Highlights Tree Tokens und Token Economics übersicht über das dritte Quartal des Roadmap -Entwicklungsteams von 2025, Investoren und Partners Treehouse Gründungsteam Investmentfonds Partner Zusammenfassung, da Defi weiter expandiert. Auf Blockchain bauen jedoch

Ein verbaler Kampf um den Wert von "Sch?pfer -Token" fegte über den Krypto -sozialen Kreis. Die beiden gro?en Helmans von Base und Solana hatten eine seltene Frontalkonfrontation und eine heftige Debatte um Zora und Pump. Woher kam diese mit Schie?pulver gefüllte Konfrontation? Lassen Sie uns herausfinden. Die Kontroverse brach aus: Die Sicherung von Sterling Crispins Angriff auf Zora war Delcomplex -Forscher Sterling Crispin, das Zora auf sozialen Plattformen ?ffentlich bombardierte. Zora ist ein soziales Protokoll in der Basiskette, das sich auf die Tokenisierung der Benutzer -Homepage und des Inhalts konzentriert

Verzeichnis Wie ist Zirkan. SCHLUSSFOLGERUNG In den letzten Jahren ist der Nischenmarkt der Layer2 -Blockchain -Plattform, die Dienste für das Ethereum -Layer1 -Netzwerk erbringt, vor allem aufgrund von Netzwerküberlastungen, hohen Abhandlungsgebühren und schlechter Skalierbarkeit floriert. Viele dieser Plattformen verwenden die Hochvolumentechnologie, mehrere Transaktionsstapel verarbeitet abseits der Kette

Um zu vermeiden, dass die Spekulation von W?hrungsspekulationen zu hohen Preisen übernommen wird, ist es erforderlich, ein Drei-in-ein-Verteidigungssystem für Marktbewusstsein, Risikoidentifikation und Verteidigungsstrategie festzulegen: 1. Identifizieren von Signalen wie Social-Media-Anstieg am Ende des Bullenmarktes, stürzen Sie sich nach dem Anstieg der neuen W?hrung und der Riesenwale. Verwenden Sie in der frühen Phase des B?renmarktes die Position Pyramidenregeln und dynamischer Stoppverlust. 2.. Erstellen Sie einen Dreifachfilter für die Informationsabstufung (Strategie/Taktik/Rauschen), die technische überprüfung (bewegliche Durchschnittswerte und RSI, tiefe Daten), emotionale Isolation (drei aufeinanderfolgende Verluste und Stopps und das Ziehen des Netzwerkkabels); 3.. Erstellen Sie die dreischichtige Verteidigung von Regeln (Big Whale Tracking, politischempfindliche Positionen), Werkzeugschicht (On-Chain-Datenüberwachung, Absicherungstools) und Systemschicht (Langhantelstrategie, USDT-Reserven); V.
