运行了就知道怎么回事儿了。
这个是一个简单的例子 里面还涉及到 如 对称密钥加密使用证书解密,没有涉及到。
可以查看:
OPEN SYMMETRIC KEY 命令关于 对称密钥加密使用证书解密
CREATE
MASTER
KEY
ENCRYPTION
BY
PASSWORD
=
'password'
go
CREATE
CERTIFICATE
CertTest
with
SUBJECT
=
'Test Certificate'
GO
--
创建非对称密钥
CREATE
ASYMMETRIC
KEY
TestAsymmetric
WITH
ALGORITHM
=
RSA_2048
ENCRYPTION
BY
PASSWORD
=
'password1'
;
GO
ALTER
ASYMMETRIC
KEY
TestAsymmetric
WITH
PRIVATE
KEY
(
DECRYPTION
BY
PASSWORD
=
'password1'
)
--DROP ASYMMETRIC KEY TestAsymmetric
--
创建对称密钥
CREATE
SYMMETRIC
KEY
TestSymmetric
WITH
ALGORITHM
=
AES_256
ENCRYPTION
BY
PASSWORD
=
'password'
;
GO
OPEN
SYMMETRIC
KEY
TestSymmetric
DECRYPTION
BY
PASSWORD
=
'password'
;
go
SELECT
ENCRYPTBYASYMKEY
(
ASYMKEY_ID
(
'TestAsymmetric'
),
name
)
,
CAST
(
deCRYPTBYASYMKEY
(
ASYMKEY_ID
(
'TestAsymmetric'
),
ENCRYPTBYASYMKEY
(
ASYMKEY_ID
(
'TestAsymmetric'
),
name
)
)
as
nvarchar
(
200
)),
ENCRYPTBYCERT
(
Cert_ID
(
'CertTest'
),
name
),
CAST
(
deCRYPTBYCERT
(
Cert_ID
(
'CertTest'
),
ENCRYPTBYCERT
(
Cert_ID
(
'CertTest'
),
name
))
as
nvarchar
(
200
)),
EncryptByKey
(
KEY_GUID
(
'TestSymmetric'
),
name
),
CAST
(
decryptByKey
(
EncryptByKey
(
KEY_GUID
(
'TestSymmetric'
),
name
))
as
nvarchar
(
200
))
FROM
sys
.
objects