Microsoft SQL Server
एन्क्रिप्शन
खोज…
पैरामीटर
वैकल्पिक पैरामीटर | विवरण |
---|---|
WITH PRIVATE KEY | क्रिएट सर्टिफिकेट के लिए, एक निजी कुंजी निर्दिष्ट की जा सकती है: (FILE='D:\Temp\CertTest\private.pvk', DECRYPTION BY PASSWORD = 'password'); |
टिप्पणियों
एक डीईआर प्रमाण पत्र का निर्माण ठीक काम करेगा। जब एक Base64 प्रमाणपत्र का उपयोग किया जाता है, तो SQL सर्वर गुप्त संदेश के साथ शिकायत करेगा:
Msg 15468, Level 16, State 6, Line 1
An error occurred during the generation of the certificate.
अपने OS के सर्टिफिकेट स्टोर में अपने बेस 64 सर्टिफिकेट को आयात करें ताकि इसे डीईआर बाइनरी प्रारूप में फिर से निर्यात किया जा सके।
एक और महत्वपूर्ण बात यह है कि एक एन्क्रिप्शन पदानुक्रम हो ताकि एक दूसरे की सुरक्षा हो, सभी ओएस स्तर पर। 'डेटाबेस / TDE का एन्क्रिप्शन' पर लेख देखें
प्रमाण पत्र बनाने के लिए अधिक जानकारी के लिए: https://msdn.microsoft.com/en-us/library/ms187798.aspx
डेटाबेस / TDE के एन्क्रिप्शन के लिए अधिक जानकारी के लिए: https://msdn.microsoft.com/en-us/library/bb934049.aspx
डेटा के एन्क्रिप्शन के लिए अधिक जानकारी के लिए यहां जाएं : https://msdn.microsoft.com/en-us/library/ms188061.aspx
प्रमाण पत्र द्वारा एन्क्रिप्शन
CREATE CERTIFICATE My_New_Cert
FROM FILE = 'D:\Temp\CertTest\certificateDER.cer'
GO
प्रमाण पत्र बनाएं
SELECT EncryptByCert(Cert_ID('My_New_Cert'),
'This text will get encrypted') encryption_test
आमतौर पर, आप एक सममित कुंजी के साथ एन्क्रिप्ट करेंगे, उस कुंजी को आपके प्रमाणपत्र से असममित कुंजी (सार्वजनिक कुंजी) द्वारा एन्क्रिप्ट किया जाएगा।
इसके अलावा, ध्यान दें कि एन्क्रिप्शन कुंजी की लंबाई के आधार पर कुछ लंबाई तक सीमित है और NULL अन्यथा वापस आ जाता है। Microsoft लिखता है: "सीमाएं हैं: एक 512 बिट RSA कुंजी 53 बाइट्स तक एन्क्रिप्ट कर सकती है, 1024 बिट कुंजी 117 बाइट्स तक एन्क्रिप्ट कर सकती है, और 2048 बिट कुंजी 245 बाइट्स तक एन्क्रिप्ट कर सकती है।"
EncryptByAsymKey की एक ही सीमा है। UNICODE के लिए इसे 2 (16 बिट प्रति वर्ण) से विभाजित किया जाएगा, इसलिए 1024 बिट की कुंजी के लिए 58 अक्षर।
डेटाबेस का एन्क्रिप्शन
USE TDE
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE My_New_Cert
GO
ALTER DATABASE TDE
SET ENCRYPTION ON
GO
यह 'पारदर्शी डेटा एन्क्रिप्शन' (TDE) का उपयोग करता है
सममित कुंजी द्वारा एन्क्रिप्शन
-- Create the key and protect it with the cert
CREATE SYMMETRIC KEY My_Sym_Key
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE My_New_Cert;
GO
-- open the key
OPEN SYMMETRIC KEY My_Sym_Key
DECRYPTION BY CERTIFICATE My_New_Cert;
-- Encrypt
SELECT EncryptByKey(Key_GUID('SSN_Key_01'), 'This text will get encrypted');
पासफ़्रेज़ द्वारा एन्क्रिप्शन
SELECT EncryptByPassphrase('MyPassPhrase', 'This text will get encrypted')
यह भी एन्क्रिप्ट करेगा लेकिन फिर असममित (प्रमाणपत्र) कुंजी के बजाय पासफ़्रेज़ द्वारा या एक स्पष्ट सममित कुंजी द्वारा।