hnosen
سه شنبه 05 بهمن 1389, 22:27 عصر
با سلام خدمت دوستان گرامی
من با استفاده از Symmetric Key داده های درون جدول ها رو رمز نگاری کردم با دستورات زیر
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = 'SQLAuthority'
CREATE CERTIFICATE EncryptTestCert
WITH SUBJECT = 'SQLAuthority'
CREATE SYMMETRIC KEY TestTableKey
WITH ALGORITHM = TRIPLE_DES
OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert
UPDATE TestTable
SET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),SecondCol)
و برای رمز گشایی از دستور زیر استفاده می کنم
OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert
SELECT CONVERT(VARCHAR(50),DECRYPTBYKEY(EncryptSecondCol) ) AS DecryptSecondCol .FROM TestTable
اما مشکل اینجاست که:
وبا دانستن نام Symmetric Key و نام CERTIFICATE که با رنگ قرمز هستند میشه اطلاعات رمزنگاری شده را رمز گشایی کرد.
حال اگر کسی این دیتابیس رو جای دیگه اتچ کنه با مراجعه به قسمت security دیتابیس به و در قسمت Symmetric Ke وCERTIFICATE براحتی نام این دو را پیدا می کنه و اونها رو با دستور بالا رمز گشایی می کنه.
آیا راهی وجود داره که این اتفاق نیفته؟
من با استفاده از Symmetric Key داده های درون جدول ها رو رمز نگاری کردم با دستورات زیر
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = 'SQLAuthority'
CREATE CERTIFICATE EncryptTestCert
WITH SUBJECT = 'SQLAuthority'
CREATE SYMMETRIC KEY TestTableKey
WITH ALGORITHM = TRIPLE_DES
OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert
UPDATE TestTable
SET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),SecondCol)
و برای رمز گشایی از دستور زیر استفاده می کنم
OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert
SELECT CONVERT(VARCHAR(50),DECRYPTBYKEY(EncryptSecondCol) ) AS DecryptSecondCol .FROM TestTable
اما مشکل اینجاست که:
وبا دانستن نام Symmetric Key و نام CERTIFICATE که با رنگ قرمز هستند میشه اطلاعات رمزنگاری شده را رمز گشایی کرد.
حال اگر کسی این دیتابیس رو جای دیگه اتچ کنه با مراجعه به قسمت security دیتابیس به و در قسمت Symmetric Ke وCERTIFICATE براحتی نام این دو را پیدا می کنه و اونها رو با دستور بالا رمز گشایی می کنه.
آیا راهی وجود داره که این اتفاق نیفته؟