Heim > Datenbank > MySQL-Tutorial > Hauptteil

So verschlüsseln Sie eine Tabelle in SQL

清浅
Freigeben: 2020-10-13 10:58:08
Original
4578 Leute haben es durchsucht

So verschlüsseln Sie SQL-Tabellen: Zuerst die Umgebung testen, dann den Datenbank-Hauptschlüssel erstellen und dann die Daten verschlüsseln;

So verschlüsseln Sie eine Tabelle in SQL

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.

So verschlüsseln Sie eine Tabelle in SQL

(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
Nach dem Login kopieren

So verschlüsseln Sie eine Tabelle in SQL

(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
Nach dem Login kopieren

Image 025.png

(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
Nach dem Login kopieren

Image 026.png

(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
Nach dem Login kopieren

Image 027.png

(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
Nach dem Login kopieren

Image 028.png

(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
Nach dem Login kopieren

Image 029.png

(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
Nach dem Login kopieren

Image 030.png

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!