There was a similar question recently, and I posted this working example. On my first server, I ran:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MinHemlis!'
CREATE CERTIFICATE dscert WITH SUBJECT = 'Test of symmetric key'
CREATE SYMMETRIC KEY symkey WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE dscert
CREATE TABLE slasktbl (id int NOT NULL PRIMARY KEY, hemligtdata varbinary(80) )
OPEN SYMMETRIC KEY symkey DECRYPTION BY CERTIFICATE dscert
INSERT slasktbl(id, hemligtdata)
VALUES(2, EncryptByKey(Key_GUID('symkey'),'Detta är hemliga data'))
BACKUP DATABASE SillyDB TO DISK = 'C:\temp\SillyDB.bak' WITH COMPRESSION, INIT
CLOSE SYMMETRIC KEY symkey
BACKUP MASTER KEY TO FILE = 'C:\temp\SillyDB.Key'
ENCRYPTION BY PASSWORD = 'Mazarinexperten'
SELECT ID, convert(varchar(40), DecryptByKey(hemligtdata))
FROM slasktbl
I copied the backup and the key file to the other server. The key file required some changes of ownership in Windows. I ran this on the other server:
RESTORE DATABASE SillyDB FROM DISK = 'C:\temp\SillyDB.bak'
RESTORE MASTER KEY FROM FILE = 'C:\temp\SillyDB.key'
DECRYPTION BY PASSWORD = 'Mazarinexperten'
ENCRYPTION BY PASSWORD = 'EnAnnanHemlis!'
FORCE
OPEN SYMMETRIC KEY symkey DECRYPTION BY CERTIFICATE dscert
SELECT ID, convert(varchar(40), DecryptByKey(hemligtdata))
FROM slasktbl