So verschlüsseln Sie SQL-Tabellen: Zuerst die Umgebung testen, dann den Datenbank-Hauptschlüssel erstellen und dann die Daten verschlüsseln;
SQL Server So richten Sie die Tabellenverschlüsselung ein
SQL Server unterstützt Verschlüsselung auf Datenbankebene (TDE) und Spalten Verschlüsselung auf Ebene der Datenverschlüsselung. Die Verschlüsselung auf Datenbankebene wird in der Datenbank durchgeführt, die für das Programm transparent ist, und während des Entwicklungsprozesses sind keine zusätzlichen Vorgänge erforderlich. Im Vergleich zur Verschlüsselung auf Datenbankebene ist der Datenverschlüsselungsprozess auf Spaltenebene etwas mühsam und das Programm muss einige zusätzliche Vorgänge ausführen. Die folgende Abbildung zeigt die Verschlüsselungshierarchie von SQL Server. Es ist ersichtlich, dass die Verschlüsselung der oberen Ebene die Verschlüsselung seiner Unterebenen schützt in der Abbildung zum Verschlüsseln/Entschlüsseln von Daten.
(1) Beschreibung der Testumgebung
Testen Sie mit SQL Server 2012 R2 und erstellen Sie die folgende Datentabelle:
--Erstellen Sie eine Benutzertabelle zum Testen
CREATE TABLE TBLUser ( Name nvarchar(30), Password varbinary(1000), ) GO
(2) Erstellen Sie einen Datenbank-Hauptschlüssel
Datenbank-Hauptschlüssel in Unter dem Dienst-Hauptschlüssel befindet sich die Verschlüsselung wird vom Diensthauptschlüssel durchgeführt. Dies ist ein Schlüssel auf Datenbankebene, der zur Verschlüsselung für die Erstellung von Zertifikaten auf Datenbankebene oder asymmetrischen Schlüsseln verwendet werden kann. Jede Datenbank kann nur einen Datenbankhauptschlüssel haben, der durch T-SQL-Anweisungen erstellt wird. Der spezifische Code lautet wie folgt:
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord' GO
(3) Zertifikat erstellen
Erstellen Sie ein symmetrisches Schlüsselzertifikat für die Verschlüsselung, das spezifische Der Code lautet wie folgt:
CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate' GO
(4) Erstellen Sie einen symmetrischen geheimen Schlüssel
Wie aus der SQL Server-Verschlüsselung ersichtlich ist Hierarchie, symmetrische Schlüssel Es kann durch ein Passwort oder andere symmetrische Schlüssel, asymmetrische Schlüssel und Zertifikate erstellt werden. In diesem Artikel wird ein Zertifikat verwendet, um einen symmetrischen geheimen Schlüssel zum Testen zu erstellen. Der spezifische Code lautet wie folgt:
CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE TestCert GO
(5) Verschlüsselte Daten
Öffnen Sie zuerst den symmetrischen geheimen Schlüssel des Zertifikats, verschlüsseln Sie die Daten dann mit der Funktion ENCRYPTBYKEY und schließen Sie dann den symmetrischen geheimen Schlüssel. Der spezifische Code lautet wie folgt:
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456')); CLOSE SYMMETRIC KEY TestSymmetric; GO
(6) Sehen Sie sich die verschlüsselten Daten an
Fragen Sie die verschlüsselten Daten direkt in SQL ab. Ich habe gesehen, dass der Inhalt des Passworts eine Folge unleserlicher Hexadezimalzeichen war.
SELECT * FROM TBLUser GO
(7) Daten entschlüsseln
Öffnen Sie zuerst den symmetrischen geheimen Schlüssel des Zertifikats und verwenden Sie dann die Funktion DecryptByKey, um die Daten zu entschlüsseln , und schließen Sie es nach Abschluss. Symmetrischer Schlüssel. Der spezifische Code lautet wie folgt:
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser; CLOSE SYMMETRIC KEY TestSymmetric; GO
Das obige ist der detaillierte Inhalt vonSo verschlüsseln Sie eine Tabelle in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!