Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL एन्क्रिप्टेड कॉलम WHERE क्लॉज में

एन्क्रिप्टेड मान और . दोनों को स्टोर करने का सामान्य तरीका है मूल्य का एकतरफा हैश। जब आप एक विशिष्ट मूल्य की तलाश करते हैं, तो आप हैश की तलाश करेंगे। इस तरह आप कुशलता से क्वेरी कर सकते हैं, आपको हर . को डिक्रिप्ट करना होगा अपनी रुचि का मान ढूंढने के लिए पंक्ति:

create table Table (
EncryptedColumn varbinary(max),
HashValue binary(20),
PlainA int,
PlainB varchar(256),
PlainC Datetime);

create index ndxTableHash on Table(HashValue);

select PlainA, plainB, PlainC
from table
where HashValue = HashBytes('SHA1', @searchTerm);

सिद्धांत रूप में, आप एक बार नीले चंद्रमा में हैश संघर्ष कर सकते हैं, पागल-सुरक्षित होने के लिए आप डिक्रिप्ट किए गए कॉलम पर एक डबल चेक जोड़ते हैं:

select PlainA, plainB, PlainC
from table
where HashValue = HashBytes('SHA1', @searchTerm)
and DecryptByKey(..., EncryptedColumn) = @searchTerm;

यह भी देखें एन्क्रिप्टेड डेटा का अनुक्रमण और SQL Server 2005:एन्क्रिप्टेड डेटा खोजना



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाटाइम द्वारा तालिका का नाम कैसे उत्पन्न करें?

  2. SQL सर्वर टेबल:@, # और ## में क्या अंतर है?

  3. एसक्यूएल मौजूदा कॉलम में विदेशी कुंजी जोड़ें

  4. SQL सर्वर सूची तालिकाएँ:सभी तालिकाएँ कैसे दिखाएं

  5. SQL:त्रुटि, अभिव्यक्ति सेवाओं की सीमा तक पहुँच गया?