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)

Hei?e Themen

Mit dem Aufnehmen der Marktbedingungen haben immer mehr intelligente Investoren begonnen, ihre Positionen im W?hrungskreis leise zu erh?hen. Viele Menschen fragen sich, was sie entschlossen einnehmen l?sst, wenn die meisten Menschen warten und sehen? In diesem Artikel wird aktuelle Trends durch On-Chain-Daten analysiert, um die Leser zu helfen, die Logik von Smart Funds zu verstehen, um die n?chste Runde potenzieller Wachstumschancen besser zu erfassen.

Vor kurzem schlug Bitcoin einen neuen High, Dogecoin, der einen starken Abpraller eingeleitet hat und der Markt war hei?. Als n?chstes werden wir die Markttreiber und technischen Aspekte analysieren, um festzustellen, ob Ethereum noch die M?glichkeit hat, dem Anstieg zu folgen.

Das Muster im ?ffentlichen Kettenfeld zeigt einen Trend von "One Super, vielen starken und hundert Blumen blühen". Ethereum führt immer noch mit seinem ?kologischen Wassergraben, w?hrend Solana, Avalanche und andere die Leistung herausfordern. In der Zwischenzeit bilden Polkadot, Cosmos, das sich auf die Interoperabilit?t konzentriert, und Chainlink, eine kritische Infrastruktur, ein zukünftiges Bild mehrerer Ketten, die nebeneinander existieren. Für Benutzer und Entwickler ist die Auswahl der Plattform keine einzige Wahl mehr, sondern erfordert einen Kompromiss zwischen Leistung, Kosten, Sicherheit und ?kologischer Reife, die auf spezifischen Anforderungen basieren.

Das Alonzo Hard -Fork -Upgrade von Cardano hat Cardano erfolgreich von einem Value Transfer -Netzwerk auf eine voll funktionsf?hige Smart Contract -Plattform verwandelt, indem die Plutus Smart Contract -Plattform eingeführt wird. 1. Plutus basiert auf Haskell -Sprache mit leistungsstarker Funktionalit?t, verbesserter Sicherheit und vorhersehbarem Kostenmodell. 2. Nach dem Upgrade wird die DAPPS -Bereitstellung beschleunigt, die Entwicklergemeinschaft wird erweitert und die Defi- und NFT -?kosysteme entwickeln sich rasant. 3. Das Cardano -?kosystem im Jahr 2025 wird reifer und vielf?ltiger sein. In Kombination mit der Verbesserung der Skalierbarkeit in der Basho-?ra, der Verbesserung der interoperischen Interoperabilit?t, der Entwicklung der dezentralen Governance in der Voltaire-?ra und der F?rderung der Mainstream-Einführung durch Anwendungen auf Unternehmensebene hat Cardano Cardano hat

Stablecoins sind Krypto -Verm?genswerte, die die Preisstabilit?t aufrechterhalten, indem sie Fiat -W?hrungen wie den US -Dollar verankern. Sie sind haupts?chlich in drei Kategorien unterteilt: Fiat -W?hrungskollateral-, Krypto -Kollateral- und Algorithmic Stablecoins. 1. USDT wird von Tether ausgestellt und ist der Stablecoin mit dem gr??ten Marktwert und der h?chsten Liquidit?t. 2. USDC wird von der Center Alliance von Circle and Coinbase ver?ffentlicht und ist bekannt für seine Transparenz und Konformit?t. 3. DAI wird von Makerdao durch überkollateralisierung von Krypto-Verm?genswerten erzeugt und ist die Kernw?hrung im Defi-Feld. V. 5. TUSD erreicht eine hohe Transparenzreserve-überprüfung durch Drittanbieter-Treuhandkonten. Benutzer k?nnen zentralisierten B?rsen wie Binance, Ouyi und Huobi verwenden

Zu den 20 vielversprechendsten Krypto -Assets im Jahr 2025 geh?ren BTC, ETH, SOL usw., die haupts?chlich mehrere Spuren wie ?ffentliche Ketten, Schicht 2, AI, Defi und Gaming abdecken. 1.BTC führt weiterhin den Markt mit seinen digitalen gelben Metalleigenschaften und der Popularisierung von ETFs an. 2.Th konsolidiert das ?kosystem aufgrund seines Status und der Upgrade von intelligenten Vertragsplattformen; 3.Sol zeichnet sich mit leistungsstarken ?ffentlichen Ketten und Entwicklergemeinschaften aus. 4.Link ist führend in Oracle, das reale Daten verbindet. 5.RNDR erstellt dezentrale GPU -Netzwerkdienstanforderungen. 6.Imx konzentriert sich auf Web3-Spiele, um eine null-gasfreie Umgebung zu bieten. 7.ARB führt mit der reifen Technologie 2 und dem riesigen Defi -?kosystem; 8.Matic ist zur Wertschicht von Ethereum durch Multi-Chain-Evolution geworden

Vor kurzem ist die Diskussion im Bereich Digital Asset hei? geblieben. DogEcoin Dogy als einer der beliebtesten Fokus ist zu einer Frage geworden, die viele Menschen untersucht haben. Wohin "sich niederlassen"? Wie ist die Beziehung zur aktuellen führenden Handelsplattform Binance? Um diese Fragen zu beantworten, müssen wir aus den beiden Dimensionen der zugrunde liegenden technischen Logik digitaler Assets und der Plattform?kologie eingehende Analysen durchführen, anstatt nur im Erscheinungsbild zu bleiben.

Der Kernunterschied zwischen USDC, DAI und TUSD liegt im Ausstellungsmechanismus, im Kollateralverm?gen und im Risikomerkmal. 1. USDC ist ein zentraler Stablecoin, der von Circle herausgegeben wird und durch Bargeld und kurzfristige Staatsanleihen besichert ist. Die Vorteile sind Einhaltung und transparente, starke Liquidit?t und hohe Stabilit?t, aber es besteht das Risiko einer zentralisierten überprüfung und eines Einzelpunktversagens. 2. Dai ist ein dezentrales Stablecoin, das durch das Makerdao -Protokoll erzeugt wird, und das Kollateral ist ein Krypto -Verm?genswert. Es hat die Vorteile von Anti-Censuring, Transparenz in der Kette und freie freie, aber es ist auch systemische Risiken, Abh?ngigkeiten von zentralisierten Verm?genswerten und Komplexit?tsproblemen ausgesetzt. 3.. TUSD ist ein zentraler Stablecoin, der in Echtzeit-Reserve-Proofs in Echtzeit betont und eine h?here Transparenzüberprüfung mit h?herer Frequenz liefert, jedoch einen geringen Marktanteil und eine schwache Liquidit?t aufweist. Die drei sind Kollateralypen und Dezentralisierung
