esteghamat
یک شنبه 02 آذر 1393, 15:25 عصر
با سلام
يك اشكال در مورد Encryption :
1- اشياء لازم براي Encryption روي سرور 1 ايجاد گرديد.
Master Key
Certificate
Symmetric key
2-اطلاعات بصورت Encrypt شده به سرور 2 منتقل مي شود. (يك ستون از يك جدول Encrypt مي شود)
3- در سرور 2 همان اشياء با همان پسوردها ايجاد مي شود.
اما select اطلاعات ناقص است. (يعني با وجود استفاده از دستورات )
CONVERT
(varchar, DecryptByKey(ElementValue)) as ElementValueآيا حتما بايد اين Key ها در سمت سرور 2 هم restore شوند و يا فقط ايجادشوند كافي است.
حمیدرضاصادقیان
یک شنبه 02 آذر 1393, 17:20 عصر
سلام
کلیدهایی که اطلاعات توسط آنها رمزنگاری شدند باید روی هر دو سرور باشند درغیراینصورت جواب نخواهد داد.
esteghamat
سه شنبه 04 آذر 1393, 12:50 عصر
سلام
من همه اين موارد رو انجامدادم . يكبار هم نام و هم پسورد ايجاد كردم. نشد. يكبار همه Object ها را سمت سرور دوم Restore كردم نشد. اين همه دستورات من است . لطفا راهنمايي كنيد.
-- In server 1
-- Step 1 - Create Encryption Objects
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = '123'
GO
CREATE CERTIFICATE PayFishCert
ENCRYPTION BY PASSWORD = '123'
WITH SUBJECT = 'Pay Column'
CREATE SYMMETRIC KEY PayFishSymm
WITH ALGORITHM = DES
ENCRYPTION BY CERTIFICATE PayFishCert;
GO
-- Step 2- Backup Encryption Objects
BACKUP MASTER KEY TO FILE = 'f:\EncryptBackup\MASTERKEY'
ENCRYPTION BY PASSWORD = '123';
BACKUP CERTIFICATE PayFishCert TO FILE = 'f:\EncryptBackup\PayFishCert.cer'
WITH PRIVATE KEY (FILE = 'f:\EncryptBackup\PayFishCert.pvk' ,
ENCRYPTION BY PASSWORD = '123',
DECRYPTION BY PASSWORD = '123');
GO
-- Step 3- Encrypt a column in server 1
OPEN SYMMETRIC KEY PayFishSymm
DECRYPTION BY CERTIFICATE PayFishCert
WITH PASSWORD = '123';
Update adm_TableP_AllPers
Set [ElementValueEnc] = EncryptByKey(Key_GUID('PayFishSymm'),ElementValue)
-- Step 4- Check For Decryption in server 1
OPEN SYMMETRIC KEY PayFishSymm
DECRYPTION BY CERTIFICATE PayFishCert
WITH PASSWORD = '123';
select [PersId],[PersCode],[FullName],[Year],[Month],[AccNo],[CostCenter],[WorkLoc],
[ElementTitle],[ElementRef],
CONVERT(VARCHAR, DecryptByKey([Elementvalue])) AS 'ElementValue',
[ElementType],[LoanInitValue],[LoanRemValue],[Sequence] from adm_TableP_AllPers
-- All Things is ok
-- Step 5- Copy Data of this Table To Server 2
Insert into server2.mydb.dbo.adm_TableP_AllPers select * from adm_TableP_AllPers
--but in server 2
-----------------------------------------------
-- In server 2
Use mydb
-- Step 1 - Restore Encryption Objects
--Drop Master Key
restore master key from file = 'e:\EncryptionBackup\MASTERKEY'
decryption by password = '123'
encryption by password = '123'
OPEN MASTER KEY DECRYPTION BY PASSWORD = '123'
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '123';
CLOSE MASTER KEY
CREATE CERTIFICATE PayFishCert FROM FILE = 'e:\EncryptionBackup\PayFishCert.cer'
WITH PRIVATE KEY (FILE = 'e:\EncryptionBackup\PayFishCert.pvk',
DECRYPTION BY PASSWORD = '123',
ENCRYPTION BY PASSWORD = '123');
GO
CREATE SYMMETRIC KEY PayFishSymm
WITH ALGORITHM = DES
ENCRYPTION BY CERTIFICATE PayFishCert;
-- Step 2 -- Open Symmetric and Read data
OPEN SYMMETRIC KEY PayFishSymm
DECRYPTION BY CERTIFICATE PayFishCert
WITH PASSWORD = '123';
select [PersId],[PersCode],[FullName],[Year],[Month],[AccNo],[CostCenter],[WorkLoc],
[ElementTitle],[ElementRef],
CONVERT(VARCHAR, DecryptByKey([Elementvalue])) AS 'ElementValue',
[ElementType],[LoanInitValue],[LoanRemValue],[Sequence] from adm_TableP_AllPers
---------------------
متاسفانه اطلاعات ستون مورد نظر را نمايش نمي دهد.
يعني رمزگشايي با مشكل مواجه شده است.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.